System.out字符编码

我正在从命令行运行我的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命令行解决此字符编码问题? 谢谢

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

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

 Active code page: 850 

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

 java -Dfile.encoding=IBM850 Test