2014-09-23 65 views
-1

我使用Java將文件中的內容讀取到字符串中。但字符串不能顯示一些字符,如ćşę。無法顯示從文件中讀取的某些字符

這裏是我的代碼:

FileInputStream in = new FileInputStream(f); 
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); 

PrintStream out = new PrintStream(System.out, false, "UTF-8"); 
while(true) { 

    String line = br.readLine(); 
    if(line == null) 
     break; 
    out.println(line); 
} 

我怎樣才能解決這個問題?

+0

試試這個線程..http://stackoverflow.com/questions/13877187/read-special-characters-from-a-file-and-write-in-another-file-using-java – Mohit 2014-09-23 12:20:00

+0

它可能會來從您的控制檯不正確顯示這些字符。嘗試在文件中寫入並檢查它是否正確。 – 2014-09-23 12:20:03

+0

你得到了什麼錯誤 – vikeng21 2014-09-23 12:21:07

回答

-1

推測這是失敗的事實表明文件不是UTF8編碼。當你告訴Java的時候,它相信你,而這是錯誤的,事情並不奏效。

沒有實用的通用方法來檢測任意文件的編碼,因此您的選擇是使用某種外部工具將其轉換,或者找出它實際上是什麼編碼並告訴Java(通過BufferedStreamReader構造函數的參數)。

+0

該文件確實採用UTF8編碼。我使用'file -I'檢查了它。我的系統是Mac OS。 – Rafer 2014-09-23 14:53:43

相關問題