JSP / Tomcat5中的编码问题

时间:2009-09-09 08:41:08

标签: jsp tomcat encoding

我在Tomcat5上运行了一个Web应用程序。在jsp页面中说page1.jsp,有一些复选框,其中title和value有一些法语字符(Français)。当我选择一些复选框并提交页面时,它会转到page2.jsp,其中我显示了所选的标题。问题是,在这个页面上,特殊字符正在变化(Français)。当form的方法是“POST”时会发生这种情况。在“GET”的情况下,它工作正常。 在Tomcat的server.xml中,uriEncoding被定义为“UTF-8”。我已经经历了这么多帖子,但问题仍然存在。

3 个答案:

答案 0 :(得分:1)

我做了一个测试。您需要将accept-charset添加到表单标记:

<form ... accept-charset="UTF-8" ...>

...并告诉容器在读取任何参数之前使用什么编码,因为浏览器不会发送它在标题中使用的编码:

request.setCharacterEncoding("UTF-8");

最后,确保您输出的页面的编码在响应标头和head中的元标记中设置。

答案 1 :(得分:1)

看起来像是使用了混合编码。请进行以下更改

  1. 确保server.xml中的<Connector>具有URIEncoding =“UTF-8”。只需进行此更改并尝试使用GET。如果它破坏它是好的:)
  2. 在所有JSP中添加以下内容:<%@page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
  3. request.setCharacterEncoding("UTF-8")添加到所有servlet中。如果您有其他过滤器,则可能必须在过滤器中执行此操作,因为这仅在处理参数之前有效。

答案 2 :(得分:0)

您可以在此处查看答案:UTF-8 and Servlets on Tomcat/Linux