Information:java: Multiple encodings set for module chunk xxx(项目名) "GBK" will be used by compiler

IDEA 进行编译代码的时候,特别是新项目 特别容易出现 编码错误,但是 File-Encoding中设置的又没有问题,而且maven 是能打包的,就是用 idea 自带的 编译的时候 就会出现提示 找不到字符,错误开头会提示

Information:java: Multiple encodings set for module chunk xxx(项目名) "GBK" will be used by compiler

java: Multiple encodings set for module chunk xxx(项目名)  

"GBK" will be used by compiler  

提示诸如此类的报错

[ERROR] /D:/xxxxxxx/test.java:[1,1] java:需要')'
[ERROR] /D:/xxxxxxx/test.java:[1,10] java:未结束的字符串文字
[ERROR] /D:/xxxxxxx/test.javaa:[1,1] 非法字符: 65279
[ERROR] /D:/xxxxxxx/test.java:[1,10] 需要class, interface或enum
[ERROR] /D:/xxxxxxx/test.java:[1,10] java:需要';'

问题所在:当编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息,按照GBK中汉字占两个字节、英文占1个字节的特性解码成了“乱码”的两个汉字。

但是我们的设置里面 设置的 是 UTF-8 那么显然哪个地方把它设置为 GBK 了

那么首先: 检查.idea/encodings.xml是否对某些类指定了charset,如果有,删除即可

不过既然发现了问题,就得排查一下怎么来的

Information:java: Multiple encodings set for module chunk xxx(项目名) "GBK" will be used by compiler

首先查看了一下文件修改的记录,发现是同事提交代码的时候提交了.idea的配置文件,导致在pull代码的时候,把配置文件也一起pull下来了。。友情提醒各位同学,提代码不要提本地的配置文件啊。。血坑啊