JSP форма кодирования - PullRequest
0 голосов
/ 17 февраля 2010

У меня есть страница jsp (скажем, page1.jsp), которая имеет html-форму с action = "page2.jsp". В page1.jsp и page2.jsp у меня есть <%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> вне секции head и <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> в секции head.

Если я пишу греческие буквы в форме, я вижу в URL (метод get) что-то подобное http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....

и из page2.Jsp с использованием <% out.println(request.getParameter("lastNameForm")); %>

я понял αÏδαÏδ Что я могу сделать?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2010

Таким образом, вы хотите URL-декодировать GET параметры запроса, используя UTF-8 кодировку символов. Для URL-декодирования параметров запроса GET необходимо установить кодировку символов в конфигурации сервера. Как это сделать, зависит от рассматриваемого сервера, лучше всего обратиться к его документации, используя ключевые слова "кодировка uri" . Например, в Tomcat необходимо установить атрибут URIEncoding элемента <Connector> для HTTP-запросов в server.xml, также см. этот документ:

<Connector (...) URIEncoding="UTF-8" />

HttpServletRequest#setCharacterEncoding(), как упоминал Божо, работает только для POST запросов, когда параметры включены в тело запроса, а не в URL.

Для получения дополнительной справочной информации и подробного обзора всех решений вы можете найти эту статью полезной.

3 голосов
/ 17 февраля 2010

попробуй

request.setCharacterEncoding("utf-8");

в верхней части вашего второго JSP

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