2015-06-14 166 views
7

我正在閱讀包含德語,法語,西班牙語,英語和波蘭語文本的xml文件。正確顯示(波蘭語)字符

要處理我試圖做這樣的拋光字母(這引起了最麻煩的):

File file = new File(path); 
InputStream is = new FileInputStream(file); 
Reader reader = new InputStreamReader(is, charset); 

InputSource src = new InputSource(reader); 
src.setEncoding(charset.name()); 

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser saxParser = factory.newSAXParser(); 

saxParser.parse(src, handler); 

我遇到的問題是,沒有一個默認字符集的正常顯示文字。有些人在其中有一些問號,有些人在其中包含其他字符的組合,例如, AO ..

打破它一點下來,我又寫了段測試哪些字符集的工作原理:

public static void main(String[] args){ 
     Charset charset = StandardCharsets.UTF_8; 
     String chars = "śłuna długie"; 
     System.out.println(new String(chars.getBytes(charset), charset)); 
} 

再次測試每一個,但沒有工作.. 我希望你有個好主意。

+3

在您的第一個代碼片段中,您不輸出任何內容,因此很難說出發生了什麼。第二個代碼片段正常工作,'śłunadługie'正確地打印到控制檯。你使用什麼控制檯? *您嘗試打印此文本的位置?輸出設備是否支持要打印的字符? – 2015-06-14 13:31:50

+0

提供解析器的正確代碼很困難,因爲它有很多重要的部分。 好吧,所以問題可能是我的控制檯..沒有想到這一點。 這是我的Intellij IDEA – codewing

+0

的默認控制檯更改我的項目和IDE編碼爲UTF 8,它的工作..謝謝哥們 – codewing

回答

0

我的解決辦法:更改我用我的IDE(的IntelliJ),這是「視窗1252」,由於我使用這個電腦窗口的默認編碼你的IDE

的編碼。

因此,我將其更改爲UTF-8,並且簡短的測試代碼對我來說工作得很好。