【问题标题】:Display (polish) characters properly正确显示(抛光)字符
【发布时间】: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


【解决方案1】:

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

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

所以我将其更改为 UTF-8,简短的测试代码对我来说效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多