Проблема кодирования UTF-8 в Unix-машине - PullRequest
1 голос
/ 24 октября 2010

Я экспортирую набор данных, чтобы преуспеть в java, данные имеют определенные символы, отличные от ascii, при экспорте в машину Windows данные поступают правильно в формате UTF-8. Но когда я развертываю свой код в машине Unix, это не работает должным образом. Кодировка UTF-8 не работает должным образом. Я использую сервер Tomcat 5.5. Я также включил параметр URIencoding = "UTF_8" в server.xml. Но все же в Unix машина не работает должным образом

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Запуск Tomcat с опцией

-Dfile.encoding=UTF8

заставит виртуальную машину принять кодировку UTF8 в качестве кодировки по умолчанию независимо от вашей среды.Я подозреваю, что это ваша проблема (и тем не менее, это хорошая практика)

0 голосов
/ 25 октября 2010

Когда вы работаете с данными UTF-8, они могут быть очень хрупкими.Каждый шаг в цепочке должен указывать utf8.

(1) В базе данных убедитесь, что таблица имеет кодировку и сопоставление UTF8.«Показать статус таблицы» скажет вам это.Google для "mysql alter table utf8" для получения дополнительной информации.

(2) Соединение JDBC должно указать кодировку UTF8.Для Connector / J это будет что-то похожее на:

useUnicode=true&characterEncoding=UTF-8

(3) Каждый поток чтения / записи, каждое преобразование строки в байт в коде должно указывать UTF-8 в качестве кодировки.Это легко пропустить.Если он пропущен, Java будет использовать системную настройку по умолчанию, которая будет варьироваться от сервера к серверу.

(4) Здесь не применимо, но для данных, отправленных пользователем из формы, вам необходимо установить кодировку символа запроса.(Я делаю это в фильтре сервлетов)

request.setCharacterEncoding("UTF-8");

(5) Возможно, здесь не применимо, но если вы выводите HTML / XML / текст из своего сервлета, установите заголовок кодировки символов HTTP.(Это может применяться, если вы генерируете файл Excel как файл XML).

response.setContentType("text/html; charset=UTF-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...