tomcat中的字符编码

tomcat中的字符编码,tomcat,character-encoding,Tomcat,Character Encoding,我在Tomcat6.0中编码有问题。在我指定的所有jsp页面上 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 和页面指令中的pageEncoding=“UTF-8”。但当我通过get或post方法传递参数(西里尔字母)时,我输入了另一个符号。我已经读到,要在post方法中解决这个问题,我必须设置request.setCharacterEncoding(“UTF-8”)这对我真的很有帮

我在Tomcat6.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方法也能做到这一点

编辑 当我使用form通过GET方法传递参数时,server.xml中的URIEncoding是有效的。但如果我在servlet中使用response.senRedirect()(也使用GET方法)方法,它会用另一个符号修改西里尔文参数

已解决
使用java.net.URLEncoder解决了这个问题。每个参数都必须由
urlcoder.encode(第8段,“UTF-8”)
编码。然后它将正确显示。

我通过在tomcat server.xml的http和ajp连接器中添加
URIEncoder=UTF-8
解决了这个问题。除了这个什么也没做。我使用的是Spring、apache/tomcat。

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

我发现以下几点很有用:


你能安装Firefox/Firebug并在这里粘贴一些HTTP请求/响应头吗?我想你弄不清楚服务器是从哪里来的。尝试接受编码HTTP头。