2016-02-04 33 views
0

我的問題是我無法在Java中使用特殊字符打開文件。由於Java中的特殊字符而無法打開文件

例如,

我有一個文件一樣solution/Testàtest.pdf,如果我在Linux上運行我的Java程序與java -jar program.jar

我收到的錯誤消息:

java.io.FileNotFoundException

因爲他看起來路徑爲solution/Testtest.pdf而不是像s upposed作爲solution/Testàtest.pdf

我的代碼打開一個文件是:

File d1 = new File("solution/Testàtest.pdf"); 

所以,大家有一個想法如何解決這個問題呢?

+8

「soltuion」是路徑中的拼寫錯誤嗎? – Berger

+0

你確定這是正確的道路嗎? – amkz

+0

這是一個編碼問題 嘗試將您的字符串編碼爲utf8字符集:'File d1 = new File(new String(「soltuion /Testàtest.pdf」.getBytes(「UTF-8」),「ISO-8859-1」) );' –

回答

0

您可能在Java或操作系統的文件名中有錯字(正如註釋中指出的@Berger),或者您有字符串編碼問題。

我運行linux並在UTF-8上有我的Java源文件編碼。

我有一個文件:/home/raudenaerde/ħ.txt< - 當我看到漂亮的字:)

public static void main(String[] args) { 
    File f = new File("/home/raudenaerde/ħ.txt"); 

    System.out.println(f.exists()); 
} 

這樣的:

真正

如果你是不知道java源文件編碼,你可以隨時使用unicode轉義(在這種情況下:\u0127

要在Linux上打印您的語言環境,r un命令:

locale