2015-06-14 99 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,并且简短的测试代码对我来说工作得很好。