Java:如何检测(和更改?)System.console的编码?
2022-09-03 01:31:59
我有一个在控制台上运行的程序,其元音变音和其他特殊字符被输出为?在 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罗马”后,它正确打印
höhößüä
höhößüä
请注意,在 Windows 系统上,使用 System.console() 可以工作:
h÷h÷▀³õ
höhößüä
那么我该如何制作我的程序...滚眼......“到处跑”?