18

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

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 命令行解决此字符编码问题?谢谢

4

1 回答 1

18

我通过从命令行找到正确的编码,然后使用PrintStream具有该编码的版本,或者通过在命令行上指定它并仅使用System.out.println.

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

Active code page: 850

这对应于“IBM850”的 Java 字符集名称。因此,这会在命令行上创建正确的输出:

java -Dfile.encoding=IBM850 Test
于 2012-12-25T13:06:23.160 回答