tomcat中的字符编码

时间:2011-06-17 01:06:36

标签: tomcat character-encoding

我在Tomcat 6.0中遇到编码问题。在我指定的所有jsp页面上

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
页面指​​令中的

pageEncoding="UTF-8"。但是当我通过get或post方法传递参数(西里尔字母)时,我有另外一个符号,我输入了。我已经读过要在post方法中解决这个问题,我必须设置request.setCharacterEncoding("UTF-8");这对我有帮助。另外我已经读过要在get方法中修复它我必须在server.xml中的Connector元素中指定URIEncoding =“UTF-8”。它也适用于get方法,但前提是我没有指定request.setCharacterEncoding("UTF-8");。因此,如果我同时指定它们,则只有post方法的参数传递才能正常工作。 我怎么能用get方法呢?

修改 当我使用表单通过GET方法传递参数时,server.xml中的URIEncoding工作正常。但是如果我在servlet中使用response.senRedirect()(也使用GET方法)方法,它会用另一个符号修改西里尔语参数

解决 使用java.net.URLEncoder解决了这个问题。每个参数都必须由URLEncoder.encode(par, "UTF-8")编码。然后它会正确显示。

2 个答案:

答案 0 :(得分:1)

我通过在tomcat server.xml的http和ajp连接器中添加URIEncoder=UTF-8来解决此问题。除此之外别无其他。我正在使用Spring,apache / tomcat。

答案 1 :(得分:0)

我还认为您应该使用 JSP 页面指令,而不是 meta 标记。我不能说这是否会导致问题,但这是不必要的。

我发现以下内容很有用:

UTF-8: The Secret of Character Encoding

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)