将日常操作系统换成Linux Mint之后发现之前在Windows系统上的大多数文件在Linux下都变成了乱码。代码的注释,一些文本文档,以及中文文件名等等。。查了相关的资料后发现原来是Windows系统默认的编码是GBK的,而Linux下是UTF8。对于代码来说当然不会有什么问题,但对于中文的文档,代码的中文注释来说就悲惨了。。。
Google了一堆解决方法,都比较好用,现将解决方法记录一下:
1.修改文件内容的编码 iconv
iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
命令参数:
- -f, –from-code=名称 原始文本编码
- -t, –to-code=名称 输出编码
iconv -f gbk -t utf8 aaa.txt >bbb.txt
这个命令读取aaa.txt文件,从gbk编码转换为utf-8编码,其输出定向到bbb.txt文件
2.文件名编码转换 convmv
把所有.java的文件名编码转为utf8
convmv -f GBK -t UTF-8 –notest -r *.java //-r递归
如果不加–notest只是查看转换前后的变化。就像使用iconv的时候不进行重定向的话只是查看变化对源文件无影响
3.最简易的方法 使用 enca
enca -L zh_CN 文件名 //查看文件的编码方式
enca -L zh_CN -x 目标编码 文件名 //转换
使用示例:
enca -L zh_CN -x utf8 *.java