powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / php+oracle кодировка
18 сообщений из 18, страница 1 из 1
php+oracle кодировка
    #39677055
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
Есть оракл 10.2.0.5 на линуксе

NLS_CALENDAR GREGORIAN
NLS_CHARACTERSET CL8ISO8859P5
NLS_COMP BINARY
NLS_CURRENCY ?.
NLS_DATE_FORMAT DD.MM.RR
NLS_DATE_LANGUAGE ENGLISH
NLS_DUAL_CURRENCY ?.
NLS_ISO_CURRENCY RUSSIA
NLS_LANGUAGE ENGLISH
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_NCHAR_CONV_EXCP FALSE
NLS_NUMERIC_CHARACTERS ,
NLS_RDBMS_VERSION 10.2.0.5.0
NLS_SORT BINARY
NLS_TERRITORY RUSSIA
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR


Есть сайт centos7+httpd(apache)+php7+oci8
oracle client 10.2.0.5
в /etc/httpd/conf/httpd.conf
AddDefaultCharset WINDOWS-1251

Подключаюсь так:
if(!$connection = oci_connect($User, $Pass, $Server, 'CL8MSWIN1251') or false)

В итоге или кракозябры или знаки вопросов.

Как это всё настроить?
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677059
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYКак это всё настроить?

Последовательно. Сначала с помощью DUMP() убедись, что данные в БД лежат в правильной
кодировке. Потом - что они в правильной же кодировке выбираются из Пых-Пыха. В конце - что
их выдача в браузер сопровождается правильными заголовками.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677060
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYВ итоге или кракозябры или знаки вопросов.

Смотря где именно вопросительные крякозябры.

Пробуйте в консоли:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# Если идете на сервер терминалкой - убедитесь, что для данного сеанса установлена трансляция 1251.

locale -a | grep 1251 - выбираете подходящую локаль.
export LC_ALL=<тут выбранная выше локаль>
export NLS_LANG=.CL8MSWIN1251

#Далее: 
sqlplus user/pass@server
select 'мама мыла раму' from dual;


Работает?
Тогда копайте свой httpd и все, что вокруг него с целью представить данные библиотеке в 1251.
Нет?
Тогда Вы что-то не то прислали в исходном перечне параметров сервера.
Требуемые значения лежат в nls_DATABASE_parameters
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677064
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
locale -a | grep 1251
be_BY.cp1251
bg_BG.cp1251
:)

sqlplus там нет, пойду его искать
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677066
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYsqlplus там нет, пойду его искать
ЫДЭ нет sqlplus?!
Это часть штатного oracle client.
Либо мсье соврал вот тут:
Код: plsql
1.
if(!$connection = oci_connect($User, $Pass, $Server, 'CL8MSWIN1251') or false)
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677067
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
на сервере с сайтом установлен басик клиент:
oracle-instantclient-basic-10.2.0.5-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.5-1.x86_64.rpm

sqlplus на сервере с сайотм отсутствует

Вообще ранее этот сайт с этой базой нормально работал, но сервер пришлось переустановить. Вот теперь настроить не могу.
Кроме бэкапа папки /var/www ничего не осталось.
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677071
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
и как локаль русскую поставить? :)

export LC_ALL=ru_RU.cp1251
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.cp1251): Нет такого файла или каталога
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677073
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYи как локаль русскую поставить? :)
export LC_ALL=ru_RU.cp1251
bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.cp1251): Нет такого файла или каталога
Ответ был в выводе locale -a:
lYYlocale -a | grep 1251
be_BY.cp1251
bg_BG.cp1251
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677074
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
фигвам вобщем

# sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Jul 20 19:08:59 2018

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

Enter user-name: system@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host= ... )(Port=1521))(CONNECT_DATA=(SID= xxx)))
Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select 'мама мыла раму' from dual;

'????????????????????????'
--------------------------
???????? ???????? ????????

SQL>

...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677076
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
[root@dokuc /]# export LC_ALL=be_BY.cp1251
[root@dokuc /]# export NLS_LANG=.CL8MSWIN1251
[root@dokuc /]# sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Jul 20 19:12:56 2018

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Enter user-name: system
Enter password: 

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select 'мама мыла раму' from dual;

'У&#65533;?У&#65533;?У&#65533;?&#65533;?&#65533;?р&#65533;?Ус'
--------------------------
м&#65533;?м&#65533;? м&#65533;?&#65533;?&#65533;? р&#65533;?му

SQL> 
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677108
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит кавалерийский наскок и тупой копи-паст не помогут. Придётся таки следовать
описанной мною последовательности диагностики.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677148
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYY
Код: plsql
1.
'У&#65533;?У&#65533;?У&#65533;?&#65533;?&#65533;?р&#65533;?Ус'


Чойта вдруг юникодица-то поперла?
Через терминалку заходили? Трансляцию 1251 поставили?
Код: plsql
1.
select * from nls_database_parameters ;


покажите
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677174
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
Dimitry Sibiryakov,

я к сожалению не очень понял ваш совет,
я не разработчик, я админ
ранее этот сайт с этой базой работал, значит дело в клиенте или апаче
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677175
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
andrey_anonymous,

select * from nls_database_parameters ;
в самом первом сообщении
(заходил через ssh)
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677217
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYя к сожалению не очень понял ваш совет,
я не разработчик, я админ

И какое слово ты не понял? Кстати, админ чего ты?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677286
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
Dimitry SibiryakovlYYя к сожалению не очень понял ваш совет,
я не разработчик, я админ

И какое слово ты не понял? Кстати, админ чего ты?

слово "правильная" мне не понятно в данном контексте.

В общем, если локаль сделать ru_UTF8 и NLS_LANG тоже, то sqlplus начинает писать по русски.
Как такие же настройки сделать в апаче?
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39677294
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lYYслово "правильная" мне не понятно в данном контексте.

"Правильная" в данном контексте означает, что шестнадцатиричные коды символов известной
строки, выводимые функцией DUMP, соответствуют кодам данных символов в кодировке, которая
ожидается в данном месте.То есть ISO8859-5 на сервере, Windows-1251 в PHP скрипте и тому,
что указано в Context-Encoding или мета-тэгах страницы - в браузере.

Начните с первого: убедитесь, что данные в базе действительно в ISO8859-5. Дальнейшие шаги
без этого бесполезны (кроме одного - чтения Oracle Globalization Guide).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
php+oracle кодировка
    #39679547
lYY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lYY
Гость
Нашел ВМ fc25.x86_64
Там всё само по русски заработало.
AddDefaultCharset UTF-8
и больше никаких настроек.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / php+oracle кодировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]