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

  • Post author:
  • Post category:其他


一、问题描述:

最近在 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 后就好了。



版权声明:本文为fesdgasdgasdg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。