System.out字符编码

时间:2012-12-25 12:53:56

标签: java windows-7 character-encoding

我正在从命令行运行我的Java程序(Windows 7)。为了简化问题,我只描述相关部分。

public static void main(String[] args) {
    System.out.println("Árpád");
}

我的输出是垃圾。这显然是一个字符编码问题,Á和á的匈牙利字符没有正确显示。我尝试了以下内容:

public static void main(String[] args) {
    PrintStream ps = new PrintStream(System.out, true, "UTF-8");
    ps.println("Árpád");
}

但我的输出仍然是垃圾。如何使用Windows 7命令行解决此字符编码问题?感谢

1 个答案:

答案 0 :(得分:16)

我通过命令行找到正确的编码,然后使用带有该编码的PrintStream版本的 ,让代码工作。在命令行上指定它,只使用System.out.println

要在命令行上查找编码,请运行chcp。这是我得到的输出:

Active code page: 850

这对应于Java charset名称“IBM850”。这样就可以在命令行上创建正确的输出:

java -Dfile.encoding=IBM850 Test