0

我和这里有同样的问题。

我使用 primefaces 2.2 jsf 实现。我已经尝试了所有方法,但没有任何效果。还有其他解决方案吗?当我尝试时new String (s.getBytes ("iso-8859-1"), "UTF-8");,我怎么知道输入编码?

4

3 回答 3

4
String fileName=new String(event.getFile()
                                 .getFileName()
                                 .getBytes(Charset.defaultCharset()),"UTF-8").toUpperCase(locale);
于 2014-05-06T22:50:15.627 回答
1

输入编码是您的服务器使用的默认编码,而不是 UTF-8。所以它是一个应用程序范围的设置,因此不依赖于特定的 HTTP 请求/客户端。很多时候,它与Charset#defaultCharset().

至于具体问题,请注意 PrimeFaces 3.3 目前仍在为此苦苦挣扎。另请参阅使用 utf8 字符过滤器的 primefaces 文件上传过滤器,您可以在其中找到一些提示来破解 PrimeFaces 源代码本身以修复错误。

于 2012-08-20T13:13:27.420 回答
0

我在开发日文网站的时候也遇到过这种问题。文本变成未知字符。经过一番谷歌搜索后,我能够解决这个问题。这是我的解决方案。

<h:form enctype="multipart/form-data;charset=UTF-8">
  <p:fileUpload id="image" immediate="true" auto="true" sizeLimit="1048576" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" fileUploadListener="#{uploadController.uploadListener}" mode="advanced" multiple="true"/>
</h:form>

您只需添加multipart/form-data;charset=UTF-8表单的 enctype 即可。

于 2013-09-20T03:16:58.970 回答