这似乎真的很疯狂,但我无法在我的intellij想法的控制台中对编码损坏做任何事情。
我为克服这个问题所做的事情:
完成所有这些操作仍然没有运气,并且控制台中没有正确显示符号。我试图调试java.io.PrintStream #println(java.lang.String)方法,发现System.out.textOut.out.se.cs等于windows-1251。不知道这个价值来自哪里。
这个问题困扰了我很长一段时间,我无法在网上找到任何可以帮助我的东西。
提前感谢您的帮助。
答案 0 :(得分:7)
您可能修改了错误的文件,
不是: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
答案 1 :(得分:5)
尝试
-Dconsole.encoding=UTF-8
而不是
-Dfile.encoding=UTF-8
答案 2 :(得分:2)
我的理论是你的java类文件正在使用" windows-1251"编码,你需要设置它" UTF-8"。
答案 3 :(得分:1)
这对我有用。
希望对您有帮助。
对不起,我的英语。我还在学习。 (感谢@MrPromethee的建议)
答案 4 :(得分:0)
在我的案例中,在调试中检查System.out.textOut.out.se.cs
暗示了每个JUnit运行配置的IDEA picked up maven surefire arguments:
<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=true
添加到idea64.exe.vmoptions文件来解决此问题。
另见https://www.jetbrains.com/help/idea/configuring-output-encoding.html。