Java上载的Java上载文件名土耳其字符问题 - Primefaces

时间:2014-11-26 12:33:30

标签: java jsf primefaces

我使用Primefaces p:fileUpload对话框。当我在文件名中使用一些特定的土耳其字符,如“ğüşıöç”时,我无法正确获取它们,也无法将上传的文件保存在光盘上。

public void handleFileUpload(FileUploadEvent event){
    String newName = new String(event.getFile().getFileName("ISO-8859-1").getBytes(), "UTF-8");

或者我也试过这个:

String newName = new String(event.getFile().getFileName("ISO-8859-1").getBytes(), "ISO-8859-9");

如何正确获取或转换字母?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

确保在文件上传过滤器之前的web.xml中包含以下过滤器

<filter>
    <filter-name>Character Encoding Filter</filter-name>
    <filter-class>org.primefaces.examples.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Character Encoding Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

现在简单event.getFile().getFileName()应该打印正确的名称