發表文章

目前顯示的是 十一月 22, 2013的文章

libiconv: 字元集碼編轉換

from:http://www.jollen.org/blog/2006/09/libiconv_1.html

實作 Linux 系統程式時,常需要做「Unicode 與 Big5」間的字元編碼轉換;嵌入式 Linux 的應用也經常會遇到這樣的需求,例如我們原則上會將文件存成 Unicode,當程式執行時,再決定要輸出成 Unicode 或 Big5 (or GBxxxx),這時就要使用到 GNU 的 libiconv 專案。
GNU libiconv 用來做字元間的編碼轉換,已經廣泛被使用在 GNU/Linux 系統中,例如 PHP 的 iconv 系統即是使用 GNU libiconv。libiconv 要移植到 ARM9 平臺上也是非常容易的。GNU libiconv 的官方首頁是:http://www.gnu.org/software/libiconv/ 把 libiconv 套件解開並編譯後,可以在 src/ 目錄下找到 iconv 執行檔,這是 libiconv 為我們寫好的一個字元轉碼 (conversion) 工具,這個工具相當的實用,比如以 jollen 的網站來說,jollen.org 的網頁是以 unicode 儲存,但是我們發佈的頁面是以 big5 編碼為主,我們所使用的轉換工具便是 iconv。 iconv 的使用可以參考 http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1.html,我們舉一個例子來說明,比如我想把 big5.txt 文件 (Big5 encode) 轉換成 Unicode (UTF-8),那麼只要執行: $ iconv -f BIG5 -t UTF-8 big5.txt 就可以了,參數 -f 指定來源編碼,參數 -t 指定目的編碼,編碼後的字串會輸出到 stdout。字元集 BIG5 也可以寫成 BIG-5,或是 BIG-FIVE,或是 BIGFIVE;要怎麼知道 iconv 可以處理 (接受) 哪些字元集 (character set ),只要執行 'iconv -l' 就可以查詢了,輸出結果會是一大票的字元集列表。 這是使用 iconv 工具的方式,假如要自己寫程式的話也是非常簡單的,因為 libiconv 裡頭只有 …

關於 gettext