Java使用Simple解析XML返回“?”而不是希腊字母

3

我正在尝试从以下xml中获取<title>的值,但我写的代码返回了一堆问号,而不是它应该返回的内容。我猜想这可能是某种编码问题,但我在网上还没有找到任何相关信息。

  <channel>
    <title>ΖΩΔΙΑ Προβλέψεις, 1 Σεπτεμβρίου 2012</title>
   </channel>

zodiaClass.java

public class zodiaClass {

    @Root(strict = false)
    public static class Example {

        @Path("channel")
        @Element
        private String title;

    }

    public static void main(String[] list) throws Exception {
        Persister persister = new Persister();
        File file = new File("example1/download.xml");
        Example example = persister.read(Example.class, file);


        System.out.println(example.title);
    }
}

输出:

????? ??????????, 1 ??????????? 2012

3
你确认问题是在输入方面而不是输出方面吗?也就是说,你是否在命令行环境下打印这些希腊字母,但该环境实际上并不支持希腊语?(如果尝试 System.out.println("\u03B1") 会发生什么?你应该看到一个小写的α。) - ruakh
你说得对!我又得到了一个“?”。有没有办法使Eclipse IDE的控制台支持希腊字母? - Alex Styl
没事了,我懂了。我还得改变一下Java文件的编码。非常感谢你的回复! - Alex Styl
1
只需返回翻译后的文本即可。 - Alex Styl
@Alex:这不是一个论坛,请不要在标题中加入“已解决”(solved)如果你已经解决了问题-请发布一个回答,解释问题的真正原因以及你如何解决它。 - Mat
1个回答

1

[根据要求,这是将上述评论线程翻译成答案形式的翻译。]

我怀疑问题出在输出上,而不是输入上。并非所有命令行环境都支持希腊语。为了测试这一点,您可以尝试 System.out.println("\u03B1");如果您的命令行支持希腊语,它应该显示为 α(小写字母阿尔法)。

在您的一条评论中,您提到正在使用 Eclipse。如果问题确实出在输出上,那么 搜索 Eclipse 控制台编码 表明人们已经成功尝试了许多不同的方法——从 修改 Eclipse 中相关的运行配置编辑 eclipse.ini 和系统编码

更新:【其实并不是真正的更新,但我试图保持一个常规回答的假象……】从你的跟进评论中我看到你已经通过更改*.java文件的编码方式来更改控制台编码。很酷!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接