UTF-8 и сервлеты на Tomcat / Linux - PullRequest
2 голосов
/ 03 апреля 2009

У меня были некоторые проблемы с чтением и записью UTF-8 из сервлетов в Tomcat 6 / Linux. запрос и ответ были utf-8, браузер был utf-8, URIEncoding был установлен в server.xml как на соединителях, так и на хостах. Короче говоря, все известные мне вещи в самом коде и конфигурации сервера были utf-8.

При чтении запроса мне пришлось взять байтовый массив из String, а затем снова преобразовать этот байтовый массив в String. При написании запроса мне приходилось писать байты, а не саму String, чтобы получить правильный ответ (в противном случае я бы получил исключение, в котором говорится, что некоторые символы, не входящие в ASCII, недопустимы ISO 8859-1).

Ответы [ 2 ]

5 голосов
/ 03 апреля 2009

Изменение переменной среды LANG является одним из способов решения проблемы.

Официальным способом является установка кодировки символов в фильтре севлета: http://wiki.apache.org/tomcat/Tomcat/UTF-8

Некоторая справочная информация: http://www.crazysquirrel.com/computing/general/form-encoding.jspx

0 голосов
/ 03 апреля 2009

Решением было установить переменную среды LANG (в моем случае) en_US.UTF-8 или, возможно, любую другую локаль UTF-8. Я все еще озадачен тем фактом, что я ничего не мог сделать из кода, чтобы заставить мой сервлет вести себя правильно. Если нет способа сделать это, то это ошибка с моей точки зрения.

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