我的网络应用程序当前正在使用:
- JBoss AS7
- JSF2
- PrimeFaces
由于这个错误,JSF 中的 UTF-8 表单提交会破坏数据,我设置了一个@WebFilter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
正如 BalusC 所建议的那样(谢谢)。
简单来说,它总是可以正常工作。当我也需要使用相同的表单进行文件上传时,我遇到了另一个问题(例如http://www.primefaces.org/showcase-labs/ui/fileUploadDnd.jsf)
这是主要区别
<h:form enctype="multipart/form-data">
如果没有 enctype 属性,特殊的 unicode 字符仍然可读。
使用 enctype 属性,我发现“ciaò”而不是“ciaò”。
然而,我的过滤器@WebFilter("/*") EncodingFilter
总是被调用。
可能的解决方案是将 JBoss 默认编码设置为 utf-8 吗?我怎样才能做到这一点?
*** * 编辑 ****
我还尝试将 -Dfile.encoding=UTF-8 放在我的 JAVA_OPTS 中,但什么也没有......它不起作用:((请帮帮我!