2014-10-02 143 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