unicode字符在IntelliJ IDEA控制台中显示为问号

Era*_*ran 11 java unicode console intellij-idea

我正在尝试使用System.out编写unicode字符(♠),而是打印一个问号.

如何显示正确的unicode字符而不是问号?

我在Windows上使用IntelliJ IDEA,并尝试在IDE中打印.

Nic*_*las 16

转到Help>Edit Custom VM options...然后添加以下选项:

-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

我不确定两者是否都需要,但它对我有用。您需要重新启动 IntelliJ 才能应用更改。

我已经尝试更改 Intellij 中的每个编码设置,在 Gradle 中设置这些选项并更改系统编码,这是唯一有效的方法。

  • 很好的一个,谢谢。同样,其他解决方案都不起作用。值得补充的是,我需要重新启动 IntelliJ 才能让它坚持下去。其他解决方案建议编辑 IntelliJ 的 bin 目录中的 idea/idea64.exe.vmoptions 文件,但“帮助”->“编辑自定义 VM 选项”会在 ~\.IntelliJ$VERSION\config\idea64.exe.vmoptions 中打开一个文件。 (2认同)

Mik*_*kis 13

2015年的一点点更新

TL; DR回答:

转到Settings- > Editor- > File Encodings- > Project Encoding并将其设置为"UTF-8".

扩大答案:

可以通过在System.out.print()呼叫上放置断点来找到它无法工作的原因.当断点命中,您可以添加System.outWatches,你可以看到,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在启动/调试应用程序时实例化的字符集.如果有人知道这背后的逻辑是什么,请告诉我!

  • 2016.4:不起作用。一切都是 UTF-8,包括“System.out.textOut.out.se.cs”,但我在控制台中看到带框的问号 ( )。 (2认同)

Esk*_*ola 5

文件编码配置是否正确?请参见“设置|文件编码”使用UTF-8。印刷?当我具有IDE编码并且所有文件都设置为UTF-8时,对我有用。更改编码后可能需要重新编译。