需要字符库的支持:
转载:https://www.cnblogs.com/JonnyLulu/archive/2013/07/22/3170118.html
iconv相关文件
在PC机上使用iconv一般都会正常,但是一旦到了嵌入式linux中,往往会调用失败,这是因为缺少相关文件。libc只实现了接口iconv,
但并没有实现具体的转换细节,可以想想,那么多的编码类型,如果都集成到libc库中,该是多么庞大!实际上转换细节使用动态链接库实现的。
文件位于:
/usr/lib/gconv
再看具体文件:
gconv-modules:指出了做相应转换应该调用的文件
*.so:实现由内部编码到某种编码转换的动态链接库
所以,为了支持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
是不是很方便,后面有时间再研究下如何自己编译这些动态链接库。。。