System.out字符编码

Laj*_*pad 14 java character-encoding windows-7

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

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

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

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

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

Jon*_*eet 16

我收到了你的代码通过在命令行中找到正确的编码,然后上班要么使用PrintStream版本与编码,通过指定它的命令行上,只是利用System.out.println.

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

Active code page: 850
Run Code Online (Sandbox Code Playgroud)

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

java -Dfile.encoding=IBM850 Test
Run Code Online (Sandbox Code Playgroud)