2014-10-02 140 views
0

我有掃描儀問題掃描我的文本文件。當我使用這段代碼時,我的輸出看起來就像那樣。文本使用捷克語,部分字母無法識別。任何想法可能是什麼問題?掃描儀不會掃描一些字母文本文件

代碼:

public static void main(String[] args) throws FileNotFoundException, IOException { 

     File file = new File("C:/Users/Trend0226/" 
         + "Documents/NetBeansProjects/ScreensTransition/" 
         + "src/guessword_text/Uvod_text.txt"); 


     Scanner sc = new Scanner(new BufferedReader(new FileReader(file))); 

     while(sc.hasNextLine()) { 
     String text = sc.nextLine(); 
      System.out.println(text); 
     } 

     sc.close(); 
} 

輸出:

V�tejte ve h�e GuessWord 

*********************** VOD *** ********************

克萊姆HRY濟uhodnout言論報。 Kdy hr uhodne slovoz sk v 1000K 。 Nejvy stku,kterou m ehr vyhr tje 10 000K 。 K dispozici jsou 3n pov dy,kter hr m evyu t。 Zda-lihr neuhodneprvn slovo,t mpron gohraskon ila。 HR米kdykoliv prvo ukonit HRU一個odnst SI svoji odmnu。

********************Upozorn n ********************

小時畝BT星18-TI讓利,jinak SE NEME zastnit TTO HRY

回答

1

使用重載的構造與字符集:

Scanner sc = new Scanner(new BufferedReader(new FileReader(file)), "UTF-8");

+0

請注意,編碼可能不是UTF-8,然後用好的 – yunandtidus 2014-10-02 09:53:09

+0

是的,我用UTF-8,因爲它是一個很好的捕獲所有能夠捕捉到很多字符與其他特定編碼重疊。 – Davio 2014-10-02 09:54:16

+0

當我在代碼中放入UTF-8時,IDe不接受它。 – user3770144 2014-10-02 09:57:12

1

使用

Scanner sc = new Scanner(file, "Windows-1250"); 

的FileReader是使用默認的平臺編碼的舊實用工具類。不可移植,僅適用於本地文件。其中一個也可以使用InputStreamReader。

而捷克在Windows上使用代碼頁1250,我想。

+0

非常感謝你,現在它的工作原理正確。 – user3770144 2014-10-02 10:07:40