【问题标题】:Encoding issue while uploading file with primefaces使用 primefaces 上传文件时出现编码问题
【发布时间】:2012-08-20 12:05:13
【问题描述】:

我和here有同样的问题。

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

【问题讨论】:

    标签: java jsf file-upload character-encoding primefaces


    【解决方案1】:
    String fileName=new String(event.getFile()
                                     .getFileName()
                                     .getBytes(Charset.defaultCharset()),"UTF-8").toUpperCase(locale);
    

    【讨论】:

      【解决方案2】:

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

      至于具体问题,请注意 PrimeFaces 3.3 目前仍在努力解决这个问题。另请参阅primefaces fileupload filter with utf8 characters filter,您可以在其中找到一些提示,以破解 PrimeFaces 源代码本身来修复错误。

      【讨论】:

        【解决方案3】:

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

        <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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-02
          • 1970-01-01
          • 2014-01-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多