我在 Tomcat 6.0 中遇到编码问题。在我指定的所有 jsp 页面上
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
页面指令中的 和 pageEncoding="UTF-8"
。但是当我通过 get 或 post 方法传递参数(西里尔字母)时,我输入了另一个符号。我读过要在发布方法中解决此问题,我必须设置 request.setCharacterEncoding("UTF-8");
这确实对我有帮助。我还读过要在 get 方法中修复它,我必须在 server.xml 的连接器元素中指定 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")
进行编码。然后它就会正确显示。
最佳答案
我通过在 tomcat server.xml 的 http 和 ajp 连接器中添加 URIEncoder=UTF-8
解决了这个问题。除了这个什么都没做。我正在使用 Spring、apache/tomcat。
关于tomcat - tomcat中的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380364/