同一台计算机上不同项目中的控制台输出不正确

时间:2018-08-31 09:50:12

标签: java intellij-idea utf-8 console

我花了将近3天的时间来找出为什么在一个大项目中输出

System.out.println( "你好" );

显示为“ ??” 在另一个从头开始构建的项目中,它显示为“你好”。

我正在使用IntellijIdea,但是使用jar文件从jar文件运行它时,同样的事情发生在我身上

java -jar ...

这两个项目之间仅有的两个区别是在构建系统中:第一个使用gradle,第二个不使用gradle(只是一个简单的项目)。第二点区别在于以下代码的输出

     System.out.println("Charset.defaultCharset=" + 
     Charset.defaultCharset());

第一个类型为“ Charset.defaultCharset = windows-1252”,第二个类型为“ Charset.defaultCharset = UTF-8”

好吧,我已经读过:

  1. IntellijIdea中的编码,两个项目之间的所有设置都相同 (设置→文件编码→项目编码→IDE编码)

  2. 关于Idea右下角的文件设置编码

  3. 尝试过 -Dfile.encoding = UTF-8,然后 -Dconsole.encoding = UTF-8在所有gradle实例的调试配置中
  4. 在cmd控制台中完成了

    set JAVA_TOOL_OPTIONS=-Dconsole.encoding=UTF8
    
    set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
    
  5. 在gradle.build中玩过gradle属性

    org.gradle.jvmargs='-Dfile.encoding=UTF-8'
    systemProp.file.encoding=UTF-8
    
  6. 通过

    更改了命令提示符中的编码
    chcp  65001
    

这些努力使我一无所获。有什么想法吗?

顺便说一句,几乎有相同的问题,但没有答案。我不能在那里写声望低的原因 Intellij Idea incorrect encoding in console output

the picture with settings in project that don't correctly display the output

2 个答案:

答案 0 :(得分:1)

如果问题仍然存在,似乎您已经完成了我认为的大多数... 1 ... 5,请尝试重新启动ide或计算机。

尝试一下,看看...

答案 1 :(得分:0)

好吧,终于我明白了!

导航至帮助->编辑自定义虚拟机选项...

enter image description here

添加这些:

-Dfile.encoding = UTF-8 -Dconsole.encoding = UTF-8

完全重新启动想法。