Tomcat и кодировка GET запроса
18 января 2006
При написании Web-приложения на Java под Tomcat у меня, и судя по IRC, у многих других возникала проблема по раскодированию того что нам приходит в GET запросе. Например на сайте может быть формочка поиска, которую принято отправлять GETом. А принимающий сервлет/контроллер получает какуюто чушь. Вроде приложение выдает UTF-8, принимает POST как UTF-8, а в GET чтото не то.
А решение на самом деле простое: прописать в server.xml, для нужного connector'а аттрибут URIEncoding="UTF-8", иначе он думает что там ISO-8859-1 и мы получаем совсем не то.

июля 15, 2006 в 09:27
Ух ты, как все оказывается просто, а я для этого писал специальный фильтр, который всем входящим запросам делал request.setCharacterEncoding («UTF-8»);
ноября 2, 2007 в 09:28
А где-нибудь кроме server.xml это указать нельзя? В web.xml вроде нельзя...
сентября 15, 2008 в 15:33
А я данную проблему поборол несколько инным способом.
String s = new String (request.getParameter («city»).getBytes («ISO-8859-1»), «UTF-8»);
resultSet = statement.executeQuery («SELECT * FROM testarof.aroatms_tbl WHERE city_name LIKE '%»+s+"%'");
марта 22, 2010 в 09:49
У меня было написано через специальный фильтр, который делает request.setCharacterEncoding («UTF-8»).
Я попробовал сделать через server.xml, как вы написали, но данные приходящие с формы все равно в корявой кодировке.
июля 13, 2011 в 21:16
Подскажите, пожалуйста, куда именно и в каком виде нужно прописывается request.setCharacterEncoding («UTF-8»);?
В java не разбираюсь, просто нужно корректно страницу на tomcat-e поднять.