Java - 文件名中的特殊字符

时间:2017-03-08 13:30:36

标签: java eclipse

我正在尝试编写一个应用程序,它可以读取文件夹及其子文件夹中的所有文件。

问题是带有'ä','ü'和'ö'等特殊字符的文件名。 这些被解读为' '。

我在arch linux上用Eclipse Neon.2 Release(4.6.2)开发程序。

我已经将Eclipse设置为UTF-8编码。 我的LANG是nds_DE.UTF-8

我尝试了多种方法来读取文件名(MyFile.listFiles(),DirectoryStream,FileUtils.listFiles(apache.common))

我知道,我的Java和Eclipse可以处理这些特殊字符,因为当它们出现在文本文件中或者我只是将它们打印到控制台时,它们会被正确打印。

在阅读文件名时,有没有人知道我可以尝试什么或为什么这些字符有问题?

谢谢

Vector<Entry> entrys = new Vector<Entry>();
File[] files = new File(path).listFiles();
for(File f : files){
  System.out.println(f)
  if(f.isDirectory()){
        entrys.addAll(readFilesInPath(f.getPath()));
  }else{
        entrys.add(new Entry(f.getName(),f.getParent()));
  }
}
return entrys;

1 个答案:

答案 0 :(得分:1)

好的,经过大量的研究和对我的系统变量的挫折(没有做任何好处),我找到了另一个问题,解决了我的问题: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters when using national characters

所以,我需要使用VM参数-Dsun.jnu.encoding = UTF-8

感谢您的关注和帮助。