在工作中,經(jīng)常會遇到使用操作系統(tǒng)不一樣的環(huán)境,從而導(dǎo)致在不同環(huán)境下的文件編輯的編碼是不一樣的,Windows默認(rèn)是GBK編碼格式,Linux默認(rèn)是UTF-8的格式,這樣就會出現(xiàn)把GBK編碼的文件拷貝到Linux下出現(xiàn)亂碼情況,很是讓人頭疼,下面給大家介紹下GBK->UTF-8文件編碼批量轉(zhuǎn)換。
Usage: enca [-L LANGUAGE] [OPTION]... [FILE]... enconv [-L LANGUAGE] [OPTION]... [FILE]... Detect encoding of text files and convert them if required.
$ enca -L zh_CN file 檢查文件的編碼$ enca -L zh_CN -x UTF-8 file 將文件編碼轉(zhuǎn)換為"UTF-8"編碼$ enca -L zh_CN -x UTF-8 file1 file2 如果不想覆蓋原文件可以這樣
除了有檢查文件編碼的功能以外,”enca”還有一個好處就是如果文件本來就是你要轉(zhuǎn)換的那種編碼,它不會報(bào)錯,還是會print出結(jié)果來, 而”iconv”則會報(bào)錯。這對于腳本編寫是比較方便的事情。
$ enca -L none -x utf-8 index.html
$ enca -x utf-8 *
$ convmv -f 源編碼 -t 新編碼 [選項(xiàng)] 文件名
-r 遞歸處理子文件夾–notest 真正進(jìn)行操作,請注意在默認(rèn)情況下是不對文件進(jìn)行真實(shí)操作的,而只是試驗(yàn)。–list 顯示所有支持的編碼–unescap 可以做一下轉(zhuǎn)義,比如把%20變成空格
轉(zhuǎn)換一個文件由GBK轉(zhuǎn)換成UTF-8
convmv -f GBK -t UTF-8 --notest utf8 filename
GBK->UTF-8文件編碼批量轉(zhuǎn)換腳本
$ find default -type f -exec convmv -f GBK -t UTF-8 --notest utf8 {} -o utf/{} \;
iconv -f encoding -t encoding inputfile
單個文件轉(zhuǎn)換
$ iconv -f GBK -t UTF-8 file1 -o file2
批量轉(zhuǎn)換
$ find default -type d -exec mkdir -p utf/{} \;$ find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
這兩行命令將default目錄下的文件由GBK編碼轉(zhuǎn)換為UTF-8編碼,目錄結(jié)構(gòu)不變,轉(zhuǎn)碼后的文件保存在utf/default目錄下。
聯(lián)系客服