在 UNIX Like 的環境要轉換文字編碼, 一般會使用 iconv 指令, iconv 已經內建在很多發行版, 使用起來也很方便。
把 BIG-5 及 UTF-8 互換十分常見, 以下是具體的操作方法:
BIG-5 轉 UTF-8 編碼
$ iconv -f BIG-5 -t UTF-8 old-big5.txt > new-utf8.txt
以上指令會將 old-big5.txt 檔案的編碼 (BIG-5), 轉換換成 UTF-8, 並儲存到檔案 new-utf8.txt.
上面的 -f 參數, 是指定輸入檔案的編碼, -t 是設定輸出檔案的編碼。
UTF-8 轉 BIG-5編碼
如果是將 UTF-8 的編碼轉換成 BIG-5 編碼, 只要改成這樣便可以:
若要將 UTF-8 編碼的文字檔轉為 BIG-5,則執行:
$ iconv -f UTF-8 -t BIG-5 utf8.txt > big5.txt
iconv 轉換編碼時, 需要定輸出的檔案, 不能直接把舊有檔案轉換編碼, 這樣操作起來較麻煩。要解決這個問題, 可以配合 find 指令, 便可以直接轉換檔案的編碼, 例如:
$ find . -name ‘index.php’ -exec iconv -f BIG-5 -t UTF-8 {} -o {} \;
上面指令會把 index.php 檔案, 從 BIG-5 轉換成 UTF-8 編碼, 如果想將所有 .html 檔案轉換, 可以這樣:
$ find . -name ‘*.html’ -exec iconv -f BIG-5 -t UTF-8 {} -o {} \;
但要留意, 以上指令只會轉換編碼, 不會修改 META Tag 宣告編碼的 charset 設定, 這個需要手動修改, 如果只是靜態的 html 檔, 可以用 sed 修改, 例如:
$ sed -i ‘s/BIG-5/UTF-8/g’ *.html