linux下文件編碼格式轉換

文章轉載自:http://www.firekyrin.com/archives/249.html

linux下文件編碼格式轉換方法(gb18030/utf-8)

在Linux做開發或者系統管理遇到亂碼是經常的事情,主要windows下中文的默認編碼是bg2312,而 linux下是utf-8。很多時候 涉及到和windows平臺系統的通信免不了編碼的轉化,可能大部分人都用iconv庫函數(包含在glib中)和iconv命令來執行編碼轉換,即:

iconv -f gb18030 -t utf-8 file1.txt -o file2.txt

說實話這個命令不好使,一方面容易重複轉換,另一方面不支持通配符,無法成批轉 換,文件少了還好說,要是一大堆文件豈不是要累死?

今天我要推薦的是另一個Shell下編碼轉換工具enca。用它不僅可以轉換編碼,還可以查看文件的原始編碼,而且還支持成批轉換。使用上也比iconv方便一些。安裝enca很簡單,一般用源安裝就行了,enca用法如下:

enca -L 當前語言 文件名

enca -L zh_CN file //檢查文件的編碼

enca -L 當前語言 -x 目標編碼 文件名

enca -L zh_CN -x UTF-8 file //將文件編碼轉換爲”UTF-8″編碼

enca -L zh_CN -x UTF-8 < file1 > file2 //如果不想覆蓋原文件可以這樣

除了有檢查文件編碼的功能以外,”enca”還有一個好處就是如果文件本來就是你要轉換的那種編碼,它不會報錯,還是會print出結果來, 而”iconv”則會報錯。這對於腳本編寫是比較方便的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章