須要字符庫的支持:html
轉載:https://www.cnblogs.com/JonnyLulu/archive/2013/07/22/3170118.htmllinux
在PC機上使用iconv通常都會正常,可是一旦到了嵌入式linux中,每每會調用失敗,這是由於缺乏相關文件。libc只實現了接口iconv,編碼
但並無實現具體的轉換細節,能夠想一想,那麼多的編碼類型,若是都集成到libc庫中,該是多麼龐大!實際上轉換細節使用動態連接庫實現的。htm
文件位於:blog
/usr/lib/gconv接口
再看具體文件:get
gconv-modules:指出了作相應轉換應該調用的文件編譯器
*.so:實現由內部編碼到某種編碼轉換的動態連接庫it
因此,爲了支持UTF-16到GBK的轉換,咱們至少須要3個文件:編譯
UTF-16.so
GBK.so
gconv-modules
其中gconv-modules應包含以下內容:
# from to module cost
module GBK// INTERNAL GBK 1
module INTERNAL GBK// GBK 1
# from to module cost
module UTF-16// INTERNAL UTF-16 1
module INTERNAL UTF-16// UTF-16 1
那麼這些文件從那裏來呢,最方便的就是從編譯器目錄拷貝,例如CodeSourcery g++ Lite(某廠商提供的ARM GCC),對應默認指令集的庫的
路徑是:
arm-none-linux-gnueabi/libc/usr/lib/gconv
是否是很方便,後面有時間再研究下如何本身編譯這些動態連接庫。。。