批量查询文件的编码格式
在做软件开发的时候,文件编码格式统一,特别是配置文件编码格式的统一非常的重要。编码不统一容易导致显示乱码等问题。
在linux环境下,我们想查询某个文件的编码,可用借助vim,通过Vim打开文件,输入:set fileencoding可用显示出当前的编码格式是utf-8抑或cp936。当然前提是Vim可用识别的编码,通过输入命令:set fileencodings 查看vim支持多少种编码,另外可以通过 :set fileencodings=*** 的方式设置可识别的编码格式以及优先顺序。
以上方法在识别单文件的情况下足够用了,但是识别多个文件的时候,就非常的麻烦了。这里推荐使用enca,来批量化的识别各种文件,以下是使用介绍:
安装:
$ sudo yum install enca -y
使用:
$ enca -L chinese -g *.csv > encode.txt
-L 选项是指定识别的语言,支持的语言可用由如下命令展示:
$ enca --list languages belarusian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855 KOI8-U bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113 czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic croatian: CP1250 ISO-8859-2 IBM852 macce CORK hungarian: ISO-8859-2 CP1250 IBM852 macce CORK lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK russian: KOI8-R CP1251 ISO-8859-5 IBM866 maccyr slovak: CP1250 ISO-8859-2 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK slovene: ISO-8859-2 CP1250 IBM852 macce CORK ukrainian: CP1251 IBM855 ISO-8859-5 CP1125 KOI8-U maccyr chinese: GBK BIG5 HZ none:
Utf-8和Unicode编码不需要特殊指定语言,另外-L不可指定多个语言,如果使用“-L ukrainian -L chinese”的方式来执行,后面指定的语言会覆盖前面的结果。