文章轉(zhuǎn)載自:http://www.firekyrin.com/archives/249.html
linux下文件編碼格式轉(zhuǎn)換方法(gb18030/utf-8)
在Linux做開(kāi)發(fā)或者系統(tǒng)管理遇到亂碼是經(jīng)常的事情蜓耻,主要windows下中文的默認(rèn)編碼是bg2312燕侠,而 linux下是utf-8术浪。很多時(shí)候 涉及到和windows平臺(tái)系統(tǒng)的通信免不了編碼的轉(zhuǎn)化橱乱,可能大部分人都用iconv庫(kù)函數(shù)(包含在glib中)和iconv命令來(lái)執(zhí)行編碼轉(zhuǎn)換摊聋,即:
iconv -f gb18030 -t utf-8 file1.txt -o file2.txt
說(shuō)實(shí)話這個(gè)命令不好使,一方面容易重復(fù)轉(zhuǎn)換蹂风,另一方面不支持通配符乾翔,無(wú)法成批轉(zhuǎn) 換,文件少了還好說(shuō)茁裙,要是一大堆文件豈不是要累死塘砸?
今天我要推薦的是另一個(gè)Shell下編碼轉(zhuǎn)換工具enca。用它不僅可以轉(zhuǎn)換編碼晤锥,還可以查看文件的原始編碼掉蔬,而且還支持成批轉(zhuǎn)換廊宪。使用上也比iconv方便一些。安裝enca很簡(jiǎn)單女轿,一般用源安裝就行了箭启,enca用法如下:
enca -L 當(dāng)前語(yǔ)言 文件名
enca -L zh_CN file //檢查文件的編碼
enca -L 當(dāng)前語(yǔ)言 -x 目標(biāo)編碼 文件名
enca -L zh_CN -x UTF-8 file //將文件編碼轉(zhuǎn)換為”UTF-8″編碼
enca -L zh_CN -x UTF-8 < file1 > file2 //如果不想覆蓋原文件可以這樣
除了有檢查文件編碼的功能以外,”enca”還有一個(gè)好處就是如果文件本來(lái)就是你要轉(zhuǎn)換的那種編碼蛉迹,它不會(huì)報(bào)錯(cuò)傅寡,還是會(huì)print出結(jié)果來(lái), 而”iconv”則會(huì)報(bào)錯(cuò)北救。這對(duì)于腳本編寫是比較方便的事情荐操。