我在Windows控制台中打印出一个unicode符号时遇到问题.
这是打印出unicode符号值的java代码;
System.out.print("\u22A2 ");
当我在Eclipse中使用UTF-8编码设置运行程序时,问题不存在,但是当涉及到Windows控制台时,符号会被问号替换.
以下是为了尝试克服这个问题,没有成功;
>将Windows控制台的字体更改为Lucida Console.
>每次运行Windows控制台时,我都会更改编码设置,即使用chcp 65001
我尝试了几次的额外步骤是运行带有参数的java文件,即java -Dfile.encoding = UTF-8 Filter(其中“Filter”是类的名称)
解决方法:
默认情况下,在Windows的CMD中使用的代码页是437.您可以在提示符中运行此命令进行测试:
C:\>chcp
Active code page: 437
而且,此代码页会阻止您正确显示Unicode字符!您必须将代码页更改为65001并使用-Dfile.encoding = UTF-8来实现此目的.
C:\>chcp 65001
Active code page: 65001
C:\>java -jar -Dfile.encoding=UTF-8 path/to/your/runnable/jar
标签:java,unicode,encoding,utf-8,cmd
来源: https://codeday.me/bug/20190722/1507985.html