libxml2 的 parser error : Unsupported encoding GB2312 错误问题解决

在海思的hi3516上面使用libxml2库,解析xml文件的时候,报错如下:

test.xml:1: parser error : Unsupported encoding GB2312
<?xml version="1.0" encoding="GB2312"?>

经过查找资料,参考:https://bbs.csdn.net/topics/80162056 、 

https://blog.csdn.net/wuu19/article/details/100070509

https://www.cnblogs.com/Charles-Zhang-Blog/archive/2013/05/09/3068941.html

问题得到解决,怀疑是海思的hi3516系统上的iconv版本太低;

1、到 http://ftp.gnu.org/gnu/libiconv/ 下载合适的libiconv版本,本人首先用的最新版本1.16,但是交叉编译安装后,并未生成我想要的文件 preloadable_libiconv.so,资料也查了,但是原因还是不得知,由于时间原因试了其他版本,1.11和1.15都成功生成了preloadable_libiconv.so文件,(1.14直接编译失败,原因未做深究),

2、交叉编译安装libiconv库:

./configure --prefix=/home/3rdparty_lib/hi3516/install_libiconv-1.11 --host=arm-linux CC=arm-himix200-linux-gcc --enable-shared

3、在使用libxml2库解析xml文件的程序运行的机器上,配置环境变量,如下:

export LD_PRELOAD=/home/test/preloadable_libiconv.so

有点奇怪的是,只配置了这个环境变量就可以了!!!程序没做改动,也没连接libiconv.so库文件。

(我原先是连接了libiconv.so库文件,即:-liconv 和 -L 库文件路径,也配置了对应的LD_LIBRARY_PATH,测试是OK的,但是这些步骤都去掉,仍然是OK的,可能和LD_PRELOAD有关吧,这个第一次接触到,也没做深究,以后有时间再研究吧)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值