2015-07-16 2 views
0

В моем сервлете я сохраняю в переменной String значение, которое я получаю в форме (с POST) на моей странице JSP. Это значение иногда не на английском языке ..Как я могу прочитать значение utf-8 в моем сервлете

s1 = request.getParameter("Country"); 

Затем, чтобы проверить, что я только что прочитал я распечатать его на экран журнала, и я получил $%^&, когда он не на английском языке. Я пытался добавить

<%@page contentType="text/html" pageEncoding="UTF-8" language="java" %> 

на моей странице JSP, и я также проверил, есть ли это в server.xml

URIEncoding="utf-8" 

Но это did't изменить что-нибудь .. Что я могу сделать?
EDIT
Я добавил к моему сервлета следующие

if (request.getCharacterEncoding() == null) { 
      request.setCharacterEncoding("UTF-8"); 
     } 

внутри protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

, но я все еще есть проблемы

+0

Является ли GET или POST параметр? – sp00m

+1

см. Этот превосходный пост by @balusc http://balusc.blogspot.jp/2009/05/unicode-how-to-get-characters-right.html –

+0

да его с сообщением – yaylitzis

ответ

0

Если вы используете Tomcat, вы можете попробовать свои utf8 кодировке фильтр (добавьте его в свой web.xml, конечно). Их фильтр называется org.apache.catalina.filters.SetCharacterEncodingFilter, или если вы не хотите зависеть от третьей стороны, тогда вы можете заглянуть в их исходный код и написать свой собственный, это не очень сложно.

Смотрите также http://wiki.apache.org/tomcat/FAQ/CharacterEncoding

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