我有一个在控制台上运行的程序,其变音符号和其他特殊字符在 Mac 上以 ? 的形式输出。这是一个简单的测试程序:
public static void main( String[] args ) {
System.out.println("höhößüä");
System.console().printf( "höhößüä" );
}
在默认的 Mac 控制台(使用默认的 UTF-8 编码)上,将打印:
h?h????
h?h????
但是手动将Mac终端的编码设置为“Mac OS Roman”后,它正确打印
höhößüä
höhößüä
请注意,在 Windows 系统上使用 System.console() 可以工作:
h÷h÷▀³õ
höhößüä
那么我该如何制作我的程序...rolleyes……“到处跑”?
启动应用程序时尝试以下命令行参数:
-Dfile.encoding=utf-8
这会更改 JVM 对于 I/O 操作的默认编码。
您还可以尝试:
System.setOut(new PrintStream(System.out, true, "utf-8"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)