控制台输出中的 IntelliJ IDEA 编码不正确

IT小君   2021-10-29T23:37:12

这似乎真的很疯狂,但我无法在 IntelliJ IDEA 的控制台中对损坏的编码做任何事情。

我为克服这个问题所做的事情:

  1. 设置-Dfile.encoding=UTF-8-Dfile.encoding=UTF-8在这两个idea.exe.vmoptionsidea64.exe.vmoptions(我使用64位版本虽然)。
  2. 添加-Dfile.encoding=UTF-8-Dfile.encoding=UTF-8运行/调试我的应用程序的配置。
  3. 将属性文件的设置 > 编辑器 > 文件编码 IDE 编码/项目编码/默认编码更改为 UTF-8。

完成所有这些后,仍然没有运气,并且符号未在控制台中正确显示。我尝试调试该java.io.PrintStream#println(java.lang.String)方法,发现它System.out.textOut.out.se.cs等于 windows-1251。不知道这个值是从哪里来的。

这个问题一直困扰着我很长时间,我无法在网上找到任何可以帮助我的东西。

评论(5)
IT小君

这对我有用。

  1. 关闭你的智能想法
  2. 在安装的idea中搜索并打开idea.exe.vmoptions文件,例如:“C:\Program Files\JetBrains\IntelliJ IDEA 2018.3.2\bin”。添加下一行后:-Dfile.encoding=UTF-8
  3. (可选)如果您有文件idea64.exe.vmoptions,也添加相同的行。
  4. 开始您的 Intellij 想法。
2021-10-29T23:37:12   回复
IT小君

尝试

-Dconsole.encoding=UTF-8

代替

-Dfile.encoding=UTF-8
2021-10-29T23:37:13   回复
IT小君

你可能修改了错误的文件,

不是 : C:\Program Files\JetBrains\IntelliJ IDEA xxxx\bin\idea64.exe.vmoptions

应该: C:\Users\USER_NAME\.IntelliJIdeaxxxx\config\idea64.exe.vmoptions

你可以同时添加-Dfile.encoding=UTF-8-Dconsole.encoding=UTF-8

2021-10-29T23:37:13   回复
IT小君

我的理论是你的java类文件使用“windows-1251”编码,你需要将它设置为“UTF-8”。

看看下面的截图。 在此处输入图片说明 在此处输入图片说明

要重置所有文件编码,您可以手动编辑 encodings.xml。 在此处输入图片说明 您可以在设置对话框中更改默认文件编码。 在此处输入图片说明

2021-10-29T23:37:13   回复
IT小君

在我的例子中,System.out.textOut.out.se.cs在调试中检查暗示 IDEA为每个 JUnit 运行配置选择了 maven surefire 参数

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!-- force 7-bit default encoding to ensure that nothing depends on it -->
        <argLine>-Dfile.encoding=ASCII</argLine>
    </configuration>
</plugin>

我已经通过添加-Didea.maven.surefire.disable.argLine=trueidea64.exe.vmoptions文件解决了这个问题

另请参阅:https : //www.jetbrains.com/help/idea/configuring-output-encoding.html

2021-10-29T23:37:13   回复