在imx6q上使用xml文件存储数据,但解析时出现如下错误:

Entity: line 1: parser error : Unsupported encoding gb2312
<?xml version="1.0" encoding="gb2312"?>
                                     ^
doc == null
parse xml failed: Invalid argument
 

查找资料,可能是由于板端缺少iconv所致。

iconv是一种可以将一种已知的字符集文件转换成另一种已知的字符集文件的库,它的作用是在多种国际编码格式之间进行文本内码的转换,比如它可以将UTF8编码的文件转换成GB18030的编码文件。

问题解决方法:

1、到 http://ftp.gnu.org/gnu/libiconv/ 下载合适的libiconv版本,我这里下载的是1.15。

2、建立out目录,交叉编译libiconv库:

./configure --prefix=$PWD/out --host=arm-poky-linux-gnueabi

注意,这里的home后面跟的参数是arm-poky-linux-gnueabi,而不是arm-poky-linux-gnueabi-或arm-poky-linux-gnueabi-gcc。

3、编译

make

make install

编译之后,会在out目录下生成4个目录,分别是:
bin include lib share

4、将lib下的preloadable_libiconv.so拷贝到开发板,并设置环境变量:

export LD_PRELOAD=/lib/preloadable_libiconv.so

 

注意,若不设置环境变量,则preloadable_libiconv.so库无法被使用。

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐