Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
jdbc:default:connection, java и кодировка
|
|||
|---|---|---|---|
|
#18+
Используется хранимая процедура на Java, которая через jdbc:default:connection драйвер обрабатывает данные (считает контрольные суммы). Connection conn = DriverManager.getConnection( "jdbc:default:connection", new Properties() ); Все работает нормально, но на некоторых компьютерах ReslutSet.getString() выдает данные в неправильной кодировке, не ASCII символы возвращаются вопросиками. Именно через хранимые процедуры с jdbc:default:connection драйвером, в обычном режиме все базы работают нормально, везде кодировка БД стандартная, 1251. Можно ли заставить драйвер возвращать данные в определенной кодировке? Выставлял различные Properties, ReslutSet.getString() никак не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 12:12 |
|
||
|
jdbc:default:connection, java и кодировка
|
|||
|---|---|---|---|
|
#18+
GolemXIV, Раз это происходит только на некоторых компьютерах, то возникает подозрение, что дело в версии и фиксе клиента или в региональных настройках на этих компьютерах, но не в самой хранимой. Выяснить чем эти некоторые компьютеры ("неправильные") отличаются от нормально работающих ("правильных") можете? Начать можно с "systeminfo"(Windows) и db2level (Windows, Linux, Unix). Прикладной софт, из которого запросы выдаются на всех машинах одинаковый? Т.е. данные неправильно отображаются в одной и той же прикладной программе(одинаковой версии) в случае "правильных" и "неправильных" компьютеров? Одинаково ли будут отображаться данные, при выполнении хранимой из командной строки db2 на "правильных" и "неправильных" компьютерах? PS: "jdbc:default:connection" - это не драйвер, это специальная строка соединения с БД DB2, которая используется в хранимых процедурах на Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2010, 12:59 |
|
||
|
jdbc:default:connection, java и кодировка
|
|||
|---|---|---|---|
|
#18+
Системы отличаются настройкой user.country=US и соответственно file.encoding=Cp1252. Поэтому ResultSet возвращает данные в cp1252, но, насколько я понимаю, после этого их уже никак не перекодировать. Необходимо заставить драйвер возвращать данные в другом формате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2010, 09:31 |
|
||
|
jdbc:default:connection, java и кодировка
|
|||
|---|---|---|---|
|
#18+
GolemXIV, Конечная клиентская программа реализована на языке Java? Судя по тому, что речь про ResultSet - ответом будет да. Java внутри себя использует Unicode кодировку для всей символьной информации. Данные от драйвера поступают в кодировке Unicode, за дальнейшие преобразования отвечает уже Java (JVM). Поэтому драйвер тут настраивать бесполезно, нужно "объяснить" JVM, что вывод нужно выполнять в русской локали/кодировке. Самым простым выходом будет указать параметры user.language и file.encoding при запуске java Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2010, 10:04 |
|
||
|
jdbc:default:connection, java и кодировка
|
|||
|---|---|---|---|
|
#18+
"Данные от драйвера поступают в кодировке Unicode, за дальнейшие преобразования отвечает уже Java (JVM)". Спасибо. Торможу. Значит можно перекодировать через текущий системный file.encoding. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2010, 10:24 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=67&tid=1602758]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 156ms |

| 0 / 0 |
