当前位置: 技术问答>linux和unix
linux下用libxml2解析包含中文数据的xml时出错
来源: 互联网 发布时间:2017-03-03
本文导语: 本帖最后由 yshiliu 于 2012-07-06 09:58:45 编辑 各位大侠好,又出来麻烦大家了。 现在碰到一个问题,如题所示。详细情况如下: 1.server端通过socket发送xml数据。 办公楼 ...
现在碰到一个问题,如题所示。详细情况如下:
1.server端通过socket发送xml数据。
办公楼
2.用libxml2库来解析发过来的xml数据提示错误
Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding !
想请教一下:
1.发过来的xml编码方式明明写的是"utf-8",为什么还提示错误?
2.如果要解决这个问题是不是要把xml编码方式改为"gb2312"在从server端发过来,然后再通过iconv来编码转换为"utf-8"?
办公楼
3.我的程序只是解析出数据,不需要显示数据的内容。
谢谢大家啦!!!
|
xml默认都是utf8,意思是它将按照utf8编码解析XML报文内的字节。
楼主一看就编码白痴,以为改一下encoding就完了吗,编码是数据的编码,不是你说是啥就是啥了。
先确定XML报文自身的编码格式,然后指定对应的encoding即可,这样可以保证libxml2解析正常,当然拿到的数据也是XML报文本身的编码,接下来要怎么用自己决定是否iconv往别的码转。
楼主一看就编码白痴,以为改一下encoding就完了吗,编码是数据的编码,不是你说是啥就是啥了。
先确定XML报文自身的编码格式,然后指定对应的encoding即可,这样可以保证libxml2解析正常,当然拿到的数据也是XML报文本身的编码,接下来要怎么用自己决定是否iconv往别的码转。