批量查询文件的编码格式

  在做软件开发的时候,文件编码格式统一,特别是配置文件编码格式的统一非常的重要。编码不统一容易导致显示乱码等问题。

  在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”的方式来执行,后面指定的语言会覆盖前面的结果。

posted @ 2019-05-31 14:11  溟漓  阅读(1910)  评论(0编辑  收藏  举报