簡體   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