繁體(正體中文) 與簡體和UTF8 之間的轉換在Windows 下已有不少工具,諸如ConvertZ… 之類的軟體
在Linux 下,沒有ConvertZ,突然懷念起Windows 下有許多好用的軟體 ><心裡一直覺得,Linux 不該只有這二把刷子,一定有什麼東西可以轉換…上google 查到了一些資料
經過試驗之後,將心得記錄如下:
GNU libiconv 這個library 是編碼轉換的核心程式庫,除了提供程式控制界面之外,也提供了可操作指令 「/usr/bin/iconv」
iconv 主要參數有
-f 原始文字的編碼
-t 欲輸出的文字編碼
-l 列出已知編碼字元集
例: iconv -f big5 -t gb2312 test.big5.txt > test.gb.txt
繁-->簡,這行指令就能把內容為big5編碼檔 test.big5.txt 轉換成gb2312 並輸出為 test.gb.txt
例: iconv -f big5 -t utf8 test.big5.txt > test.utf8.txt
big5-->utf8,這行指令就能把內容為big5編碼檔 test.big5.txt 轉換成utf8 並輸出為 test.utf8.txt
例: iconv -f utf8 -t gb2312 test.utf8.txt > test.gb.txt
utf8-->gb2312,這行指令把剛剛轉換出內容為utf8的編碼檔 test.utf8.txt f8轉換成gb2312 並輸出為 test.gb.txt
如果是utf8 簡體-->utf8繁體,就比較麻煩要三道手續
1. utf8簡體 -->gb2312 「iconv -f utf8 -t gb2312 test.gb.utf8.txt >test.gb.txt」
2. gb2312 --> big5 「iconv -f gb2312 -t big5 test.gb.txt >test.big5.txt」
3. big5 --> utf8繁體 「iconv -f big5 -t utf8 test.big5.txt >test.big5.utf8.txt」
上述作法看起來很累,需要多產生二個中繼檔(test.gb.txt,test.big5.txt)
有沒有更smart 的做法呢,當然有,可以善用「管線 (PIPE)」功能
例:
iconv -f utf8 -t gb2312 test.gb.utf8.txt | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 > test.big5.utf8.txt
簡單吧!!一個指令完成 ^_^
iconv 的輸入可以接受 * 鍞的萬用字元,也可以間接的把一推文字檔轉換後放到同一個檔案中
除了 iconv 之外,也有不少軟體可以做繁簡轉換
例:pycodec - 中文碼/萬國碼轉換程式
參考ddy1280大作