Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неправильное отображение кирилицы в CLOB / 8 сообщений из 8, страница 1 из 1
09.06.2017, 13:02
    #39469420
holyguest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
Добрый день!
Есть у клиента сервер Oracle 12.2.0.1 на Oracle Linux 7 .
NLS_DATABASE_PARAMETERS

(если вдруг проблема с картинкой, то
NLS_LANGUAGE=AMERICAN
NLS_TERRITORY=AMERICA
NLS_CHARACTERSET=CL8MSWIN1251
NLS_NCHAR_CHARACTERSET=AL16UTF16
)
С компьютера на Windows (что Windows Server 2012 R2 , что Windows 10 ) выполняем выборку данных из поля (CLOB) с кирилицей (Oracle SQL Developer) и получаем явно не то, что хотели (квадратики, ромбики).
В приложении, работающем на Java (как и Oracle SQL Developer, по-моему) та же проблема.
Данные с кирилицей в полях VARCHAR , NVARCHAR отображаются корректно.
Выполняем этот же запрос через SQL*Plus непосредственно на сервере Linux — все в порядке.
Пробовали следующее:
На компьютерах с Windows переменную среды NLS_LANG уже выставляли по-разному( RUSSIAN_RUSSIA.CL8MSWIN1251, AMERICAN_AMERICA.CL8MSWIN1251, ENGLISH_AMERICA.CL8MSWIN1251 ). Совсем убирали тоже.

Аналогично игрались с параметром реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient12g_home1\NLS_LANG

В переменные среды прописывали JAVA_ARGS=-Duser.country=en -Duser.language=US для смены дефолтной локали в JVM (начитались всякого здесь и тут ).

Пробовали в свойствах SQL Developera прописывать
AddVMOption -Duser.country=en
AddVMOption -Duser.language=US

без результата.

Пробовали через SQL Developer изменять параметры сессии:
Код: plsql
1.
2.
alter session set NLS_LANGUAGE=RUSSIAN(или AMERICAN);
alter session set NLS_TERRITORY=RUSSIA(или AMERICA);


Все манипуляции не дали результата. По-прежнему проблемы с кодировкой на клиентах Windows.
Я просмотрел форумы и интернет прежде чем писать пост, но случая, похожего на этот, не нашёл.

На сколько я понимаю, CLOB хранит данных в кодировке, указанной в NLS_CHARACTERSET=CL8MSWIN1251 (как и поля VARCHAR) и в данном случае проблем быть не должно. В параметрах NLS_LANG везде где указавали мы выставляли кодировку именно CL8MSWIN1251 , как и на сервере. Разве что меняли локаль. если есть какие-нибудь идеи, то буду благодарен за совет, вектор куда копать.

Если бы здесь убивали за тупые вопросы, я бы сдох в первый же день
...
Рейтинг: 0 / 0
09.06.2017, 13:09
    #39469439
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
holyguestВыполняем этот же запрос через SQL*Plus непосредственно на сервере Linux — все в порядке.

А тот же запрос через SQL*Plus в консоли на клиенте Windows с предварительно выставленной
chcp 1251?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.06.2017, 13:41
    #39469472
holyguest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
Dimitry Sibiryakov,
нет, обычный select (лично не имею доступа к серверу БД, но админ присылал скрины без предварительной установки кодировки)
...
Рейтинг: 0 / 0
09.06.2017, 13:50
    #39469478
holyguest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
Dimitry SibiryakovА тот же запрос через SQL*Plus в консоли на клиенте Windows с предварительно выставленной
chcp 1251?

Ой, глупость написал.
Не пробовали из под Windows на SQL*Plus (админ заходил на сервер БД по ssh(Putty) и там в консоли выполнял запрос).
НО, из под Windows PL\SQL Developer возвращает читаемую кирилицу в качестве результата обычного select'a все того же CLOB-поля.
...
Рейтинг: 0 / 0
09.06.2017, 13:58
    #39469481
altjke
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
holyguest,

Поднимал тот же вопрос недавно
http://www.sql.ru/forum/1262328/nekorrektno-otobrazhaetsya-chast-russkih-slov


Какая у тебя версия Java там где кириллица кривая?
...
Рейтинг: 0 / 0
09.06.2017, 14:20
    #39469502
holyguest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
altjkeКакая у тебя версия Java там где кириллица кривая?
1.8.0.121

Ещё небольшое дополнение: есть системы, где это все работает нормально (и приложение на Java, и SQL Developer). Все БД создаются с NLS_CHARACTERSET=CL8MSWIN1251 и NLS_NCHAR_CHARACTERSET=AL16UTF16.

Отличие конкретно этой системы: Oracle 12 (в большинстве случаев 11g), Java 8 (в остальных — 7 и 6).
Это вряд ли имеет большое значение именно в данном вопросе, но написать стоит.
...
Рейтинг: 0 / 0
09.06.2017, 14:44
    #39469520
altjke
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
holyguestaltjkeКакая у тебя версия Java там где кириллица кривая?
1.8.0.121

Ещё небольшое дополнение: есть системы, где это все работает нормально (и приложение на Java, и SQL Developer). Все БД создаются с NLS_CHARACTERSET=CL8MSWIN1251 и NLS_NCHAR_CHARACTERSET=AL16UTF16.

Отличие конкретно этой системы: Oracle 12 (в большинстве случаев 11g), Java 8 (в остальных — 7 и 6).
Это вряд ли имеет большое значение именно в данном вопросе, но написать стоит.

Извиняюсь, больше интересует версия Java на клиенте,а не на сервере.
...
Рейтинг: 0 / 0
12.06.2017, 15:38
    #39470516
NLS_LANG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильное отображение кирилицы в CLOB
holyguest,
Проверьте в соединении, в котором получаете искажение, фактически установленное значение кодировки клиента.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
Select c.Client_Charset
  From Gv$session s
  Join Gv$session_Connect_Info c
    On c.Inst_Id = s.Inst_Id
   And c.Sid = s.Sid
   And c.Serial# = s.Serial#
 Where s.Audsid = Userenv('sessionid');


Было дело нарывался на то, что инструмент не воспринимал системные установки NLS_LANG, перебивая ее значение собственным устанавливаемым значением переменных среды (PL/SQL Developer 11 on Win32, принимал только если значение NLS_LANG передать как опцию запуска в командной строке).
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неправильное отображение кирилицы в CLOB / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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