在Linux做開發或者系統管理遇到亂碼是經常的事情,主要Windows下中文的默認編碼是bg2312,而Linux下是utf-8。很多時候 涉及到和Windows平台系統的通信免不了編碼的轉化,可能大部分人都用iconv庫函數(包含在glib中)和iconv命令來執行編碼轉換,今天我要推薦的是另一個shell下編碼轉換工具enca。用它不僅可以轉換編碼,還可以查看文件的原始編碼,使用上也比iconv方便一些。
在Ubuntu下安裝enca很簡單,apt一下就行了,enca用法如下:
enca -L zh_CN file 檢查文件的編碼
enca -L zh_CN -x UTF-8 file 將文件編碼轉換為”UTF-8″編碼
enca -L zh_CN -x UTF-8 < file1 > file2 如果不想覆蓋原文件可以這樣
除了有檢查文件編碼的功能以外,”enca”還有一個好處就是如果文件本來就是你要轉換的那種編碼,它不會報錯,還是會print出結果來,而”iconv”則會報錯。這對於腳本編寫是比較方便的事情。