IDEA控制台输出中文乱码问题处理

本文讲述了作者在升级IDEA至2021.2.4版本后遇到的中文乱码问题,通过尝试多种编码设置和回退到不同JDK版本,最终发现JDK21及以上版本需配置VMoptions为-Dfile.encoding=GBK才能解决。
摘要由CSDN通过智能技术生成

最近在使用IDEA时,更换了IDEA的版本为2021.2.4版本后,出现了控制台中文输出乱码的情况,如下图所示:

可以很明显的看出,英文输出正常,中文输出在控制是乱码的情况。于是常识修改编码格式,一般修改文件的编码配置:

结果依然还是不行,网上查询方法,基本上解决方法就是那几种:

1、IDEA安装的bin目录下的idea.exe.vmoptions和idea64.exe.vmoptions文件内增加-Dfile.encoding=utf-8;

2、File Encodeing配置页面设置为UTF-8,即我尝试的方法;

3、Edit Configurations的配置页面里,设置vm option为:-Dfile.encoding=utf-8;

4、Help→Etit Custom VM Options…的配置页面追加:-Dfile.encoding=UTF-8;

可以参考其他博主的帖子:IntelliJ IDEA 控制台中文乱码的四种解决方法_idea控制台输出中文乱码怎么解决-CSDN博客

经过尝试,这几种方式完全不起效果。

因为之前的IDEA是没问题的,于是怀疑是不是在配置新版IDEA时配置错误属性导致的问题,故而卸载IDEA重新安装,发现依然无法解决问题。

将之前版本的IDEA经过比对后,发现使用的jdk版本有所差异,2021.2.4版本的IDEA使用的JDK是21版本,之前版本的IDEA使用的是1.8版本的JDK。当时安装21版本jdk,是因为要使用快速创建SpringBoot项目,IDEA默认使用3.xx版本的SpringBoot,而3.xx版本的SpringBoot需要使用最低位17版本的JDK。于是将JDK版本回退到1.8版本后,发现输出正常了:

同时尝试17版本的JDK,发现也是OK的:

查询为什么21版本的JDK会出现中文输出乱码的问题,找到了如下这篇帖子:

IDEA 使用JDK21 控制台乱码 解决方案_jdk21 中文乱码-CSDN博客

发现需要在VM options配置里设置为:-Dfile.encoding=GBK,原因是:JDK18过后JDK内部默认编码格式为GBK,当项目改成UTF-8过后,JDK乱码。

于是切换回21版本的JDK后,配置VM options为-Dfile.encoding=GBK后,发现终于正常了:

如果不配置VM options为-Dfile.encoding=GBK,单文件可以使用如下代码进行设定,可以临时解决中文输出乱码问题:

        try {
            System.setOut(new PrintStream(System.out, true, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

不过建议还是使用配置VM options为-Dfile.encoding=GBK,或者回退JDK版本的处理方式最好。

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们在idea控制台输出中文时,有时会遇到控制台输出中文乱码的情况。这是因为控制台默认使用的是ASCII编码,而中文字符集超出了ASCII编码的范围。为了解决这个问题,我们可以尝试以下几种方法: 1.修改IDEA控制台编码 我们可以在IDEA中的“Run”->“Edit Configurations”中找到相应的配置项,在“VM-options”中加上-Dconsole.encoding=UTF-8,这样我们就可以在控制台输出UTF-8编码的中文了。 2.修改系统默认编码 如果第一种方法不起作用,我们可以尝试修改系统默认编码。在Windows系统中,我们可以通过修改注册表来修改系统默认编码,具体操作方式为:按Win+R打开运行,输入regedit回车打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment\1.8.0_xxx或HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_xxx(xxx为安装的JDK版本号)节点,在该节点下新建一个String类型的值,命名为JAVA_TOOL_OPTIONS,值为-Dfile.encoding=UTF8。 3.使用UTF-8统一编码 在编写Java程序时,我们可以尽量使用UTF-8编码,这样可以避免输出中文乱码问题。我们可以在IDEA的“Settings”->“Editor”->“File Encodings”中将编码格式设置为UTF-8,这样所有的文件都将使用UTF-8编码。 总之,解决控制台输出中文乱码要视乎具体情况而定,可以尝试上述方法来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值