У меня возникла проблема с getParameter() сервлета Java, который не декодирует параметр, хотя я правильно установил кодировку Tomcat в server.xml.
<Connector port.. URIEncoding="UTF-8"/>
Если я декодирую необработанный запрос, я получаю декодированный запрос, но getParamter не декодирует сам по себе!
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("CharacterEncoding: "+ request.getCharacterEncoding());
System.out.println("Query String: "+ URLDecoder.decode(request.getQueryString(), "UTF-8");
System.out.println("Query param name: "+request.getParameter("name"));
...
Результат, который я получаю, выглядит следующим образом:
Кодировка символов: UTF-8
Строка запроса: name=日本語一番ぜソFOX_&'">• «Ç€Ö™»_αß_iİıI_Администратор_cœur d´Ouchy_????????????_عربي
Запрос параметики. ±Ø¨Ù
вы можете ясно видеть, что запрос и значение имени не совпадают! На моей странице jsp я использую ‹%@page contentType="text/html; charset=UTF-8" %>