com.ibm.db2.j cc .b.SqlException: [ibm] [db2] [jcc] [10275] [10041] Неподдерживаемый ccsid, кодировка или локаль: «Cp037» - PullRequest
0 голосов
/ 09 января 2020

Я новичок в WAS сервере. Я делаю PO C с Java 1.8, Spring (4.3.9.RELEASE), Hibernate (4.2.0), DB2 и WAS 8.5.5 (установлен java 1.8). Сервер запущен успешно, но становится ниже исключительной ситуации при выполнении оператора createQuery ().

 java.io.UnsupportedEncodingException: Cp037
    at sun.io.Converters.getConverterClass(Converters.java:319)
    at sun.io.Converters.newConverter(Converters.java:373)
    at sun.io.ByteToCharConverter.getConverter(ByteToCharConverter.java:98)
    at com.ibm.db2.jcc.b.p.a(p.java:435)
    ... 132 more
2020-01-09 17:20:13 WARN  SqlExceptionHelper:143 - SQL Error: -99999, SQLState: 22021
2020-01-09 17:20:13 ERROR SqlExceptionHelper:144 - [ibm][db2][jcc][10275][10041] Unsupported ccsid, encoding, or locale: "Cp037".

Работает нормально, когда я развертываю его в Tomcat . Пожалуйста, помогите мне решить эту проблему, дайте мне знать, если какая-либо информация необходима. Спасибо.

1 Ответ

0 голосов
/ 27 января 2020

Кажется известным поведением JDK 8. Вот одна из ссылок:

Проблема кодирования / декодирования UTF-8 в JDK 8
https://www.ibm.com/support/pages/utf-8-encodingdecoding-problem-jdk-8

Причина:


Начиная с JDK 8, входные данные в декодер NIO UTF-8 (Java API) должны иметь чистый UTF -8. До JDK 8 это правило не было строго реализовано, и декодер мог также декодировать неправильно сформированную последовательность байтов UTF-8. Декодер в JDK 1.8 вызовет исключение, если он обнаружит данные, отличные от UTF-8, и программа не сможет продолжить выполнение.


Решение: (Не работает для Oracle JDK 8)


Новое глобальное свойство db2.j cc .alternateUTF8Encoding введено в J CC. Это свойство может иметь значения 1 и 0, значение по умолчанию - 0. Если для этого свойства установлено значение 1 в IBM JDK 1.8 (db2.j cc .alternateUTF8Encoding = 1) для данных в кодировке UTF8, J CC использует UTF8J для декодирования. Это поможет избежать MalformedInputException во время декодирования. Это глобальное свойство, и его необходимо настроить в файле свойств. Это свойство нельзя установить с помощью DataSource или Connection и работает только с IBM JDK.


Рекомендуется просмотреть статью.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...