IntelliJ IDEA 控制台中文乱码和错误: 非法字符: ‘\ufeff‘

一、问题描述:

最近在 Windows 电脑上使用 IntelliJ IDEA 运行 Java 程序时,发现运行报错且控制台显示乱码。如下图1:

����: ���� GBK �IJ���ӳ���ַ� (0xAA)
        // 测试,一�?
                  ^

有点蒙,这是啥意思?又报错又是乱码。

二、排查步骤:

1、先来解决乱码吧。把 IDEA 的编码都设置为 UTF-8。

如下图2:

不行,运行结果依旧。

2、网上查阅资料提示,需要把 Windows 的系统默认编码设置为 UTF-8。

设置步骤如下图3/4/5/6:

 

最后点【确定】按钮,重启电脑后再看看 IDEA 的运行效果。

如下图7:

OK,爽,不错。终于显示中文了。

但是,非法字符是什么意思?

错误: 非法字符: '\ufeff'

3、网上查阅资料发现,IDEA 需要设置文件的创建格式为 NO BOM。

Create UTF-8 Files: with NO BOM

UTF-8 NO BOM 含义:不包含特殊的异常字符

UTF-8 BOM 含义:会包含特殊的隐藏字符,会导致 IDEA 运行失败。

具体二者概念请去大海上浪一把了解下。

上面显示:【错误:非法字符:‘\ufeff’】就是因为文件编码格式为 UTF-8 BOM,携带了非法字符导致 IDEA 无法识别。

修改方式,如下图8:

 但是,修改后,运行代码还是一样报错。

那,有没有可能,当前项目中的 Java 代码已经是 UTF-8 BOM 格式的了,所以导致运行报错呢?

4、更改当前 Java 文件的编码格式为 UTF-8 NO BOM。

在电脑桌面新建文本文档,然后把 Java 文件中的代码全选复制到文本文档中,调整编码格式为 UTF-8 NO BOM,再保存,重命名文件名和后缀,粘贴替换 IDEA 中的 Java 文件。

如下图9:

再次运行,看看效果。

 yes,终于正常了。

 yes,终于正常了。

 yes,终于正常了。

如下图10:

最后,再对比下编码转换前后的差异。

如下图11:

 确实,之前一直报错的 Java 代码编码格式是 UTF-8 BOM,转换为 UTF-8 NO BOM 后就好了。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值