我在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")
编码。然后它会正确显示。
答案 0 :(得分:1)
我通过在tomcat server.xml的http和ajp连接器中添加URIEncoder=UTF-8
来解决此问题。除此之外别无其他。我正在使用Spring,apache / tomcat。
答案 1 :(得分:0)
我还认为您应该使用仅 JSP 页面指令,而不是 meta 标记。我不能说这是否会导致问题,但这是不必要的。
我发现以下内容很有用: