我在Tomcat5上运行了一个Web应用程序。在jsp页面中说page1.jsp,有一些复选框,其中title和value有一些法语字符(Français)。当我选择一些复选框并提交页面时,它会转到page2.jsp,其中我显示了所选的标题。问题是,在这个页面上,特殊字符正在变化(Français)。当form的方法是“POST”时会发生这种情况。在“GET”的情况下,它工作正常。 在Tomcat的server.xml中,uriEncoding被定义为“UTF-8”。我已经经历了这么多帖子,但问题仍然存在。
答案 0 :(得分:1)
我做了一个测试。您需要将accept-charset添加到表单标记:
<form ... accept-charset="UTF-8" ...>
...并告诉容器在读取任何参数之前使用什么编码,因为浏览器不会发送它在标题中使用的编码:
request.setCharacterEncoding("UTF-8");
最后,确保您输出的页面的编码在响应标头和head
中的元标记中设置。
答案 1 :(得分:1)
看起来像是使用了混合编码。请进行以下更改
<Connector>
具有URIEncoding =“UTF-8”。只需进行此更改并尝试使用GET。如果它破坏它是好的:)<%@page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
request.setCharacterEncoding("UTF-8")
添加到所有servlet中。如果您有其他过滤器,则可能必须在过滤器中执行此操作,因为这仅在处理参数之前有效。答案 2 :(得分:0)
您可以在此处查看答案:UTF-8 and Servlets on Tomcat/Linux