我是个中国程序员。今天,我尝试将我的项目JDK版本从16版本升级到18版本(也将IDEA2021升级到2022年),但我遇到了一个问题,即IDEA控制台打印的是文字而不是中文。这是代码和控制台输出。问题图像
我尝试了很多方法来解决它,但我失败了,然后我在CMD和github CI中重新运行它,然后这个bug消失了。CMD图像
当我将JDK回滚到16时,这个bug也消失了,这个bug似乎只发生在JDK18和IDEA控制台中,我如何解决它呢?
另外:我的单元测试也坏了。虫象
Addition2:我试过不同的chcp,它输出正确。65001 936
我认为JEP400是个问题,所以我运行了以下代码
System.out.println("Default charset : " + Charset.defaultCharset());
System.out.println("file.encoding : " + System.getProperty("file.encoding"));
System.out.println("native.encoding : " + System.getProperty("native.encoding"));
System.out.println("你好");在JDK16上,它打印:
Default charset : UTF-8
file.encoding : UTF-8
native.encoding : null
你好在JDK17上,它打印
Default charset : UTF-8
file.encoding : UTF-8
native.encoding : GBK
你好在JDK18上,它打印
Default charset : UTF-8
file.encoding : UTF-8
native.encoding : GBK
���发布于 2022-04-24 15:14:32
根据https://youtrack.jetbrains.com/issue/IDEA-291006,我在VM选项中添加了-Dfile.encoding=gbk并对其进行了求解。我觉得这是个想法上的错误。
https://stackoverflow.com/questions/71989161
复制相似问题