我正在尝试使用System.out编写unicode字符(♠),而是打印一个问号.
如何显示正确的unicode字符而不是问号?
我在Windows上使用IntelliJ IDEA,并尝试在IDE中打印.
TL; DR回答:
转到Settings
- > Editor
- > File Encodings
- > Project Encoding
并将其设置为"UTF-8".
扩大答案:
可以通过在System.out.print()
呼叫上放置断点来找到它无法工作的原因.当断点命中,您可以添加System.out
到Watches
,你可以看到,System.out.textOut.out.se.cs
被设置为windows-1252
或一些类似的不适.
神奇地为我工作的设置(我不知道为什么)在Settings
- > Editor
- > File Encodings
- > Project Encoding
.您需要将其设置为"UTF-8".
然后,unicode字符在控制台上正确显示,并且使用调试器再一次快速查看显示System.out.textOut.out.se.cs
已经神奇地变成的值UTF-8
.
我说"神奇地",因为我没有看到编辑器设置如何以及为什么会影响System.out
在启动/调试应用程序时实例化的字符集.如果有人知道这背后的逻辑是什么,请告诉我!
文件编码配置是否正确?请参见“设置|文件编码”使用UTF-8。印刷?当我具有IDE编码并且所有文件都设置为UTF-8时,对我有用。更改编码后可能需要重新编译。