我们在进行JAVA开发时,避免不了引入一些第三方的文件,但有些第三方文件在编写的时候默认的编码可能不是UTF-8的,这将会导致在idea中乱码,并且如果编译级别够高还会引起编译错误,比如:
报错如下:
那么在IDEA中如何解决此类问题呢?
reload 重新使用指定的编码进行加载
打开乱码文件,在编辑器的右下角找到如下字样并点击:
注意:较低版本的idea可以在在乱码的文件上点右键,然后点选择 FileEncoding 选项
再然后按以下动图操作:
此时我们告知IDEA说,此文件的编码是GB2312,你使用GB2312渲染并重新打开。然后就能正常显示了。但此操作并没有改变文件的编码格式,也就是说该文件的编码仍然是gb2312,并不符合我们对代码编码必须是utf-8的要求。所以编译仍然会报错。
convert 转换,将文件的编码转换为utf-8
此时,我们再次点击文件右下角的文件编码设置(此时为gb2312)
再然后按以下动图操作:
上述操作是说,将当前文件编码转换为utf-8的。经过以上操作后,原来gb2312的乱码文件已经变成了可以实别的utf-8了。再编译当然就不会报错了。
reload by gb2312: 使用gb2312编码重新打开,并没有改变文件的任何内容;convert to utf-8: 将此文件转化为utf-8编码,并以utf-8编码重新打开。此时将改变文件的内容,将里面的文字由gb2312编码变更为utf-8编码。文件的具体内容已经发生了变化。
批量转换
如果文件过多的话,一个个这样转换的话相信你一定会很头疼。在此,以macos系统为例(windows中应该有批量转换的软件)抛砖引玉,给大家提供一个思路。
步骤如下:
1 批量转码,并另存为.bak
文件
find *.java -exec sh -c "iconv -f GB2312 -t UTF8 {} > {}.bak" \;
此时,原来GB2312的每个文件都对应生成了一个.bak
文件,此bak
文件的编码为utf-8
2 删除原文件
rm *.java
此时原GB2312的文件就被我们删除了。
- 将.bak文件批量改名
使用finder打开文件夹,选中所有的文件。右键 -> 批量重命名 将.bak
替换为空。此时便恢复了原来的文件名,并且编码变更为utf-8
了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。