Java 正确显示(抛光)字符

Java 正确显示(抛光)字符,java,encoding,character-encoding,polish,Java,Encoding,Character Encoding,Polish,我正在阅读一个包含德语、法语、西班牙语、英语和波兰语文本的xml文件 为了处理波兰语字母(这造成了最大的麻烦),我试着这样做: File file = new File(path); InputStream is = new FileInputStream(file); Reader reader = new InputStreamReader(is, charset); InputSource src = new InputSource(reader); src.setEncoding(ch

我正在阅读一个包含德语、法语、西班牙语、英语和波兰语文本的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);
我遇到的问题是,没有一个默认字符集能够正确显示文本。有些有问号,有些有其他字符的组合,如ÄÖ

为了进一步分析,我编写了另一个代码片段来测试哪个字符集有效:

publicstaticvoidmain(字符串[]args){
Charset Charset=StandardCharsets.UTF_8;
字符串chars=“śłuna długie”;
System.out.println(新字符串(chars.getBytes(charset),charset));
}
再次测试了每一个,但没有任何效果。。
我希望你有个主意。

我的解决方案:更改ide的编码

我使用了ide(intellij)的默认编码,即“windows-1252”,因为我在这台电脑上使用的是windows


因此,我将它改为UTF-8,短测试代码对我来说运行良好。

在您的第一个代码片段中,您没有输出任何内容,因此很难判断发生了什么。第二个代码段工作正常,
łuna długie
正确地打印到控制台。你用什么控制台?您尝试在哪里打印此文本?输出设备是否支持要打印的字符?提供正确的解析器代码有点困难,因为它有太多重要的部分。。好的,那么问题可能是我的控制台。。我没想过。它是我的Intellij iDeach的默认控制台,它将我的项目和ide编码更改为utf 8,并且工作正常。。谢谢你,伙计