2013-04-13 58 views
2

我在unix中編寫了以下java代碼以訪問其文件名中包含瑞典語字符的文件。用於訪問Linux上瑞典語字符的文件的java代碼錯誤

System.out.println(System.getProperty("file.encoding")); 
System.out.println(System.getProperty("sun.jnu.encoding")); 

String filePath = "/tmp/newöäåå.txt"; 
System.out.println("File Path" + filePath); 

File file = new File(filePath); 
try { 
    if(file.exists()) 
     System.out.println("length: " + file.length()); 
    else{ 
     System.out.println("file not found"); 
    } 
} catch (Exception e) { 
    System.out.println("inside exception"); 
} 

輸出:

UTF-8 
UTF-8 
File Path /tmp/newöäåå.txt 
file not found 

我已經通過UNIX創建的文件而已。你能幫助我理解什麼是錯誤的?

操作系統是開放的SUSE

+0

你用什麼軟件來編輯源代碼? – Bobulous

回答

0

我認爲問題可能出在代碼本身。 .java文件不保存爲UTF-8編碼。也許嘗試從UTF-8的外部文件中讀取文件名,或者以其他方式表示文件名,或者只是確保.java文件以UTF-8編碼保存。

0

如果你用UTF-8保存你的java文件 - 它會工作。

+0

我正在使用Eclipse來編輯和編譯代碼...以及我在eclipse中明確設置爲UTF-8的編碼。 然後我將這個編譯的文件傳輸到Unix並在那裏執行它。 當我試圖編譯在UNIX這個文件,我得到像 NewDemo.java:1:illegal字符:\ 65279 我相信我即將爲聲明***字符串文件路徑=「/ tmp /newöäåå.txt「; *** 環境還有其他一些問題嗎? –

+0

編譯時嘗試使用javac選項:-encoding UTF-8 – anka976