在做軟件開發的時候,文件編碼格式統一,特別是配置文件編碼格式的統一非常的重要。編碼不統一容易導致顯示亂碼等問題。
在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”的方式來執行,后面指定的語言會覆蓋前面的結果。