咱们在进行JAVA开发时,避免不了引入一些第三方的文件,但有些第三方文件在编写的时候默认的编码可能不是UTF-8的,这将会致使在idea中乱码,而且若是编译级别够高还会引发编译错误,好比:java
报错以下:shell
那么在IDEA中如何解决此类问题呢?macos
咱们带有中文的编码每每会出如今gb2312上。咱们在乱码的文件上点右键,而后点FileEncodingwindows
再而后按如下动图操做:ide
此时咱们告知IDEA说,此文件的编码是GB2312,你使用GB2312渲染并从新打开。而后就能正常显示了。但此操做并无改变文件的编码格式,也就是说该文件的编码仍然是gb2312,并不符合咱们对代码编码必须是utf-8的要求。因此编译仍然会报错。编码
此时,咱们再次点击FileEncodingidea
再而后按如下动图操做:spa
上述操做是说,将当前文件编码转换为utf-8的。通过以上操做后,原来gb2312的乱码文件已经变成了能够实别的utf-8了。再编译固然就不会报错了。3d
reload by gb2312: 使用gb2312编码从新打开,并无改变文件的任何内容;convert to utf-8: 将此文件转化为utf-8编码,并以utf-8编码从新打开。此时将改变文件的内容,将里面的文字由gb2312编码变动为utf-8编码。文件的具体内容已经发生了变化。
若是文件过多的话,一个个这样转换的话相信你必定会很头疼。在此,以macos系统为例(windows中应该有批量转换的软件)抛砖引玉,给你们提供一个思路。code
步骤以下:
1 批量转码,并另存为.bak
文件
find *.java -exec sh -c "iconv -f GB2312 -t UTF8 {} > {}.bak" \;
此时,原来GB2312的每一个文件都对应生成了一个.bak
文件,此bak
文件的编码为utf-8
2 删除原文件
rm *.java
此时原GB2312的文件就被咱们删除了。
使用finder打开文件夹,选中全部的文件。右键 -> 批量重命名 将.bak
替换为空。此时便恢复了原来的文件名,而且编码变动为utf-8
了。