Данные DB2 Weblogic отображаются как «?????» Вопросительные знаки - PullRequest
2 голосов
/ 02 июня 2011

Я использую Weblogic 10.3.3 с базой данных DB2 z / os и Unicode для локальных серверов и серверов разработки.

Когда я запускаю свое приложение локально, запрос к базе данных возвращает некоторые данные Unicode в виде вопросительных знаков, например, «??? ?? ???????.

Это, кажется, происходит с японскими иероглифами.

Однако, если я разверну код на сервере разработки, код будет работать нормально. Я могу просмотреть символы в своем локальном браузере, и они появляются.

Кто-нибудь видел это раньше?

Не могу понять, чем отличаются серверы. Драйверы и источники данных идентичны.

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Да, я был там. Вам нужно добавить,

-Dfile.encoding=UTF-8

в ваш скрипт запуска Weblogic. Я нашел ответ в этом блоге http://alexrogan.com/?p=126

0 голосов
/ 02 июня 2011

Ваш код, очевидно, полагается на кодировку платформы по умолчанию при обработке символов. Похоже, что сервер разработки использует UTF-8, в то время как локальная разработка использует что-то другое, например, Windows CP1252, которая не поддерживает японские символы.

Чтобы исправить это соответствующим образом, вам нужно добавить это в начало каждой JSP:

<%@ page pageEncoding="UTF-8" %>

Или когда вы используете сервлеты для передачи HTML (или другого контента), вам нужно добавить это, прежде чем вы когда-либо позвоните getWriter()

response.setCharacterEncoding("UTF-8");

Или, когда вы используете JAX-RS (как я вижу в одном из ваших тегов), вам нужно добавить charset к типу контента @Produces.

@Produces("application/xml;charset=UTF-8")

Смотри также:

...