当前位置: 技术问答>linux和unix
arm下的字符编码问题
来源: 互联网 发布时间:2016-07-29
本文导语: 主要是GBK字符编码问题,程序开始是在pc上开发的,用到了iconv那个编码处理函数。主要是GBK和utf-8之间的转换,现在运行到arm(三星的2440)上的linux后出了问题iconv_open总是失败,linux的使用也不熟练,不知道从何处查...
主要是GBK字符编码问题,程序开始是在pc上开发的,用到了iconv那个编码处理函数。主要是GBK和utf-8之间的转换,现在运行到arm(三星的2440)上的linux后出了问题iconv_open总是失败,linux的使用也不熟练,不知道从何处查资料,也搜不到什么确切结果。望高人指点一二~~
|
看你的情况不是没有啊,都能够编译过?
但是通过iconv的库来实现的话应该很好实现阿,你先在你的交叉编译器中找找看有没有libiconv.a或.so的库文件,有的话好办,注意:uclib的库是精简了的,所以可能没有。
这个时候你就需要自己去下源码自己编译了。我试过:版本是libiconv-1.9.2.tar.gz的那个版本,能够不需任何修改直接./configure --prefix=...(自己定义安装目录) --host=arm-linux --enable-static
make,make install
到你设置的安装目录拷贝相应的.a和.h文件到你要用的工程里然后使用iconv的三个接口就够了:iconv_open,iconv,iconv_close。
但是都最后你会发现你的执行档增大了好多...大概700KB吧,我没有找到能够把它尺寸降下来的办法,如果兄弟有找到一定不要忘了告诉我:liuchunyang0514@163.com通知一下.
最后我还是通过自己写代码实现一个转换表,实现从gb2312到unicode的编码转换表,然后unicode转utf-8很简单了,具体我的资源里有个文档,最近两天写的,你去看看吧.
但是通过iconv的库来实现的话应该很好实现阿,你先在你的交叉编译器中找找看有没有libiconv.a或.so的库文件,有的话好办,注意:uclib的库是精简了的,所以可能没有。
这个时候你就需要自己去下源码自己编译了。我试过:版本是libiconv-1.9.2.tar.gz的那个版本,能够不需任何修改直接./configure --prefix=...(自己定义安装目录) --host=arm-linux --enable-static
make,make install
到你设置的安装目录拷贝相应的.a和.h文件到你要用的工程里然后使用iconv的三个接口就够了:iconv_open,iconv,iconv_close。
但是都最后你会发现你的执行档增大了好多...大概700KB吧,我没有找到能够把它尺寸降下来的办法,如果兄弟有找到一定不要忘了告诉我:liuchunyang0514@163.com通知一下.
最后我还是通过自己写代码实现一个转换表,实现从gb2312到unicode的编码转换表,然后unicode转utf-8很简单了,具体我的资源里有个文档,最近两天写的,你去看看吧.
|
iconv这个需要安装的吧。你在arm上没有装这个库,当然要失败,另外可能要考虑路径问题。
|
应该是的,嵌入式的Linux里不见得有那么多码表。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。