powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / jdbc:default:connection, java и кодировка
6 сообщений из 6, страница 1 из 1
jdbc:default:connection, java и кодировка
    #36625293
GolemXIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используется хранимая процедура на Java, которая через jdbc:default:connection драйвер обрабатывает данные (считает контрольные суммы).

Connection conn = DriverManager.getConnection( "jdbc:default:connection", new Properties() );

Все работает нормально, но на некоторых компьютерах ReslutSet.getString() выдает данные в неправильной кодировке, не ASCII символы возвращаются вопросиками. Именно через хранимые процедуры с jdbc:default:connection драйвером, в обычном режиме все базы работают нормально, везде кодировка БД стандартная, 1251.

Можно ли заставить драйвер возвращать данные в определенной кодировке? Выставлял различные Properties, ReslutSet.getString() никак не меняется.
...
Рейтинг: 0 / 0
jdbc:default:connection, java и кодировка
    #36625425
GolemXIV,

Раз это происходит только на некоторых компьютерах, то возникает подозрение, что дело в версии и фиксе клиента или в региональных настройках на этих компьютерах, но не в самой хранимой.
Выяснить чем эти некоторые компьютеры ("неправильные") отличаются от нормально работающих ("правильных") можете?
Начать можно с "systeminfo"(Windows) и db2level (Windows, Linux, Unix).

Прикладной софт, из которого запросы выдаются на всех машинах одинаковый?
Т.е. данные неправильно отображаются в одной и той же прикладной программе(одинаковой версии) в случае "правильных" и "неправильных" компьютеров?
Одинаково ли будут отображаться данные, при выполнении хранимой из командной строки db2 на "правильных" и "неправильных" компьютерах?

PS: "jdbc:default:connection" - это не драйвер, это специальная строка соединения с БД DB2, которая используется в хранимых процедурах на Java.
...
Рейтинг: 0 / 0
jdbc:default:connection, java и кодировка
    #36627255
GolemXIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Системы отличаются настройкой user.country=US и соответственно file.encoding=Cp1252.
Поэтому ResultSet возвращает данные в cp1252, но, насколько я понимаю, после этого их уже никак не перекодировать. Необходимо заставить драйвер возвращать данные в другом формате.
...
Рейтинг: 0 / 0
jdbc:default:connection, java и кодировка
    #36627311
GolemXIV,

Конечная клиентская программа реализована на языке Java?
Судя по тому, что речь про ResultSet - ответом будет да.
Java внутри себя использует Unicode кодировку для всей символьной информации.
Данные от драйвера поступают в кодировке Unicode, за дальнейшие преобразования отвечает уже Java (JVM). Поэтому драйвер тут настраивать бесполезно, нужно "объяснить" JVM, что вывод нужно выполнять в русской локали/кодировке.
Самым простым выходом будет указать параметры user.language и file.encoding при запуске java
Код: plaintext
java -Duser.language=ru  -Dfile.encoding= 1251  <остальные параметры>
Если вывод происходит в файл, то можно выставить кодировку файла при его открытии.
...
Рейтинг: 0 / 0
jdbc:default:connection, java и кодировка
    #36627355
GolemXIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Данные от драйвера поступают в кодировке Unicode, за дальнейшие преобразования отвечает уже Java (JVM)".
Спасибо. Торможу. Значит можно перекодировать через текущий системный file.encoding.
...
Рейтинг: 0 / 0
jdbc:default:connection, java и кодировка
    #36627808
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GolemXIV,

В процедуре лучше так делать:
Код: plaintext
1.
PrintWriter pw =  new  PrintWriter( new  OutputStreamWriter( new  FileOutputStream("d:/myfile"), "Cp1251"), false);
pw.println(...);
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / jdbc:default:connection, java и кодировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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