【发布时间】:2012-01-13 13:39:10
【问题描述】:
我正在尝试将包含 unicode 字符的简单表单发布到 servlet 操作。在 Jetty 上,一切顺利。在 Tomcat 服务器上,utf-8 字符会被损坏。
我遇到的最简单的情况:
表格:
<form action="action" method="post">
<input type="text" name="data" value="It’s fine">`
</form>`
行动:
class MyAction extends ActionSupport {
public void setData(String data) {
// data is already mangled here in Tomcat
}
}
- 我在 server.xml 中的
<Connector>上有 URIEncoding="UTF-8" - 动作上的第一个过滤器调用 request.setCharacterEncoding("UTF-8");
- 包含表单的页面的内容类型为“text/html; charset=UTF-8”
- 在表单中添加“accept-charset”没有任何区别
我可以让它工作的唯一两种方法是使用 Jetty 或将其切换到 method="get"。这两种情况都会使角色顺利通过。
【问题讨论】:
标签: java tomcat servlets utf-8 jetty