|
|
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть у клиента сервер 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. Все манипуляции не дали результата. По-прежнему проблемы с кодировкой на клиентах Windows. Я просмотрел форумы и интернет прежде чем писать пост, но случая, похожего на этот, не нашёл. На сколько я понимаю, CLOB хранит данных в кодировке, указанной в NLS_CHARACTERSET=CL8MSWIN1251 (как и поля VARCHAR) и в данном случае проблем быть не должно. В параметрах NLS_LANG везде где указавали мы выставляли кодировку именно CL8MSWIN1251 , как и на сервере. Разве что меняли локаль. если есть какие-нибудь идеи, то буду благодарен за совет, вектор куда копать. Если бы здесь убивали за тупые вопросы, я бы сдох в первый же день ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:02 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
holyguestВыполняем этот же запрос через SQL*Plus непосредственно на сервере Linux — все в порядке. А тот же запрос через SQL*Plus в консоли на клиенте Windows с предварительно выставленной chcp 1251? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:09 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, нет, обычный select (лично не имею доступа к серверу БД, но админ присылал скрины без предварительной установки кодировки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:41 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА тот же запрос через SQL*Plus в консоли на клиенте Windows с предварительно выставленной chcp 1251? Ой, глупость написал. Не пробовали из под Windows на SQL*Plus (админ заходил на сервер БД по ssh(Putty) и там в консоли выполнял запрос). НО, из под Windows PL\SQL Developer возвращает читаемую кирилицу в качестве результата обычного select'a все того же CLOB-поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:50 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
holyguest, Поднимал тот же вопрос недавно http://www.sql.ru/forum/1262328/nekorrektno-otobrazhaetsya-chast-russkih-slov Какая у тебя версия Java там где кириллица кривая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:58 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
altjkeКакая у тебя версия Java там где кириллица кривая? 1.8.0.121 Ещё небольшое дополнение: есть системы, где это все работает нормально (и приложение на Java, и SQL Developer). Все БД создаются с NLS_CHARACTERSET=CL8MSWIN1251 и NLS_NCHAR_CHARACTERSET=AL16UTF16. Отличие конкретно этой системы: Oracle 12 (в большинстве случаев 11g), Java 8 (в остальных — 7 и 6). Это вряд ли имеет большое значение именно в данном вопросе, но написать стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 14:20 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
holyguestaltjkeКакая у тебя версия Java там где кириллица кривая? 1.8.0.121 Ещё небольшое дополнение: есть системы, где это все работает нормально (и приложение на Java, и SQL Developer). Все БД создаются с NLS_CHARACTERSET=CL8MSWIN1251 и NLS_NCHAR_CHARACTERSET=AL16UTF16. Отличие конкретно этой системы: Oracle 12 (в большинстве случаев 11g), Java 8 (в остальных — 7 и 6). Это вряд ли имеет большое значение именно в данном вопросе, но написать стоит. Извиняюсь, больше интересует версия Java на клиенте,а не на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 14:44 |
|
||
|
Неправильное отображение кирилицы в CLOB
|
|||
|---|---|---|---|
|
#18+
holyguest, Проверьте в соединении, в котором получаете искажение, фактически установленное значение кодировки клиента. Код: plsql 1. 2. 3. 4. 5. 6. 7. Было дело нарывался на то, что инструмент не воспринимал системные установки NLS_LANG, перебивая ее значение собственным устанавливаемым значением переменных среды (PL/SQL Developer 11 on Win32, принимал только если значение NLS_LANG передать как опцию запуска в командной строке). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2017, 15:38 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=52&tid=1885773]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
229ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 573ms |

| 0 / 0 |
