2011-07-07 200 views
0

可能重复:
How to get UTF-8 working in java webapps?特殊字符

我有一个请求参数中收到一些特殊字符的servlet。我试图展示他们,但我只是得到问号而已。

我的查询字符串= http://localhost:8080/specialcharacter/quote/startmilesquote?option=côté

我显示

request.getQueryString() 
result= option=c%C3%B4t%C3%A9 

request.getParameter("option") 
result=c�t� 

我把

request.setCharacterEncoding("UTF-8"); 
response.setCharacterEncoding("UTF-8"); 

在servlet 将<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">放在响应的标题中。 而我在server.xml中的连接器被定义为UTF-8。

<Connector connectionTimeout="20000" port="8080" 
       protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/> 

我该如何解决我的问题?

回答

0

确保问题不显示,而不是读:

  • 如果在控制台上进行打印,检查控制台有UTF-8编码
  • 如果存储在数据库中,确保DB连接设置为UTF-8

(另外,确保你把request.setCharacterEncoding(..)您开始使用请求之前)