2009-04-03 3 views
2

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

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

+0

Я нашел ответ, который вы можете увидеть его здесь. http://isurueng.blogspot.com/2011/12/utf-8-and-jspservlets-on-tomcatlinux.html – Isuru

ответ

5

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

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

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

+0

Спасибо! Я был в Гуглинг об этом, но до сих пор я не нашел разумного объяснения. – Slartibartfast

0

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

Смежные вопросы