PrimeFaces:与文件上传相关的UTF-8错误

时间:2012-08-09 14:03:36

标签: jsf file-upload utf-8 jboss primefaces

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

  • JBoss AS7
  • JS​​F2
  • PrimeFaces

由于此错误UTF-8 form submit in JSF is corrupting data我设置 @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吗?我怎么能这样做?

*** *编辑****

我也尝试在我的JAVA_OPTS中放入-Dfile.encoding = UTF-8但没有......它不起作用:((请帮帮我!

1 个答案:

答案 0 :(得分:1)

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

  

可能的解决方案是将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>元素。