【问题标题】:PrimeFaces: UTF-8 bug related to file uploadPrimeFaces:与文件上传相关的 UTF-8 错误
【发布时间】:2012-08-09 14:03:36
【问题描述】:

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

  • JBoss AS7
  • JSF2
  • 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 吗?我该怎么做?

*** * 编辑 ****

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

【问题讨论】:

  • stackoverflow.com/a/11206837/617373 ,可能对你有帮助
  • 不错但是.... 1) 你所说的“平台”是什么意思?操作系统? jboss-as?如何更改“默认编码” 2)我不想转换每个表单字符串......实际更好的解决方案是什么?如何修改素面?没有别的路可以走吗?
  • 该答案中有一个解释,说明您应该在 primefaces jar 中修复什么以解决该问题(刚刚看到该答案,我真的不知道它是否与您的问题完全相同。)

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


【解决方案1】:

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

可能的解决方案是将 JBoss 默认编码设置为 utf-8 吗?我该怎么做?

是的。如何做到这一点取决于 JBoss 版本。对于拥有server.xml(直到版本6.x)的用户,只需将URIEncoding="UTF-8" 添加到&lt;Connector&gt; 元素即可。对于拥有standalone.xml(7.x 和更高版本)的用户,只需将&lt;property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/&gt; 添加到&lt;system-properties&gt; 元素即可。

【讨论】:

  • 这对我来说不是问题。这就是我想要的。
  • 但是....我刚刚添加了 但它不起作用
  • 嗯,这可能是另一个 JBoss 特定问题。你到底在用什么 JBoss 版本?
  • 我试过 也没有。我的版本是 7.1.1
  • 它不工作,可悲的是......我最终分成两种形式:一种用于上传,另一种用于我的数据(EncodingUTF8Filter 实际工作的唯一一种)
猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2013-06-04
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
相关资源
最近更新 更多