0

我的网络应用程序当前正在使用:

  • 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 中,但什么也没有......它不起作用:((请帮帮我!

4

1 回答 1

1

这是由 PrimeFaces 中的另一个错误引起的。另请参阅此答案以获取解释和解决方案。

可能的解决方案是将 JBoss 默认编码设置为 utf-8 吗?我怎样才能做到这一点?

是的。如何做到这一点取决于 JBoss 版本。在那些拥有server.xml(直到版本 6.x)的人中,这是添加URIEncoding="UTF-8"<Connector>元素的问题。在那些拥有standalone.xml(7.x 和更新版本)的人中,这是添加 元素<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>的问题。<system-properties>

于 2012-08-09T15:27:58.470 回答