Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как обрабатывать параметры в юникоде


Автор: AngerOgAnAngel 8.3.2006, 00:28
например в томкэте 4.1 помогало этому(см сабж) request.setCharacterEncoding("utf-8");
Здесь тот же код приводит к тому, что request.getCharacterEncoding() == null;
И к тому же какой бы я ее не менял результат не меняется(например, вывод строки, переданной параметрами, на экран). Есть ли какие нить обходные пути? как работать с кодировками ? Как правильно распарсить параметры? jboss 4.0.3 имеет встроенный томкэт, поэтому такая разница, вообще говоря, удивляет.

Автор: tux 8.3.2006, 16:40
А где вызывается request.setCharacterEncoding("utf-8")? Дело в том, что этот вызов должен быть выполнен до первого обращения к объекту типа HttpServletRequest и логичнее всего выполнять это в фильтре до, собственно, обработки запроса. Если метод вызывается не в фильтре, посмотри здесь как это сделать http://forum.vingrad.ru/index.php?showtopic=66203&view=findpost&p=530693. Теоретически все должно работать.

Что касается request.getCharacterEncoding() == null. Некоторые веб-контейнеры (возможно и Tomcat) возвращают кодировку только в том случае, если она задана в запросе, который приходит от клиента. При этом некоторые клиенты ее никогда не посылают. Насчет перечня таких клиентов не уверен, точно встречалось у старых версий Mozilla.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)