【发布时间】:2015-08-30 01:05:24
【问题描述】:
我正在阅读一个包含德语、法语、西班牙语、英语和波兰语文本的 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);
我遇到的问题是默认字符集都不能正确显示文本。有些里面有问号,有些里面有其他字符的组合,例如ÄÖ..
为了稍微分解一下,我写了另一个 sn-p 来测试哪个字符集有效:
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));
}
再次测试了每一个,但没有任何效果.. 我希望你有一个想法。
【问题讨论】:
-
在您的第一个代码 sn-p 中,您不输出任何内容,因此很难判断发生了什么。第二个代码 sn-p 有效,
śłuna długie正确打印到控制台。你用什么控制台? 在哪里您尝试打印此文本?输出设备是否支持您要打印的字符? -
提供正确的解析器代码有点困难,因为它有很多重要的部分。好吧,问题可能出在我的控制台上。。没有想到这一点。这是我的 Intellij IDEA 的默认控制台
-
将我的项目和 ide 编码更改为 utf 8 并且它有效.. 谢谢好友
标签: java encoding character-encoding polish