在 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