繁体   English   中英

Java-文件名中的特殊字符

[英]Java - special characters in file names

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

问题是文件名带有特殊字符,如“ä”,“ü”和“ö”。 那些被读作' '。

我在Arch Linux上的Eclipse Neon.2 Release(4.6.2)中开发了该程序。

我已经将Eclipse设置为UTF-8编码。 我的郎是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;

好吧,在对我的系统变量进行了大量研究和挫折(这没有任何用处)之后,我发现了另一个问题,为我的问题提供了解决方案: java.nio.file.InvalidPathException:输入格式错误或使用时输入包含不可映射的字符民族字符

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

感谢您的关注和帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM