編碼的世界 / 優質文選 / 生物

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


2022年1月07日
-   

文章轉載自:
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”則會報錯。這對於腳本編寫是比較方便的事情。

熱門文章