QXmlStreamReader能读取中文吗?
答案是肯定的,但为什么有时会出错呢?
在XML文件的开头有一行 <?xml version="1.0" encoding="UTF-8"?>的鸟东西,这里的的encodeing就是解析XML时使用的编码方式,如果它设置的不正确将无法正常解析。在有中文的环境下要使用<?xml version="1.0" encoding="GBK"?>方式,还有诸如GB-2312也能行。
对于文件可以设置encodeing的值,对于从从网络上收到的xmlrpc报文,通常没有<?xml version="1.0" encoding="GBK"?>这类的东西,导致解析的出错,可以采用的方法是将接收的数据读取到一个QByteArray中,在其的头部插入<?xml version="1.0" encoding="GBK"?>,之后再将数据addData到xmlStreamer对象中。
缺点,多拷贝了两次数据。
答案是肯定的,但为什么有时会出错呢?
在XML文件的开头有一行 <?xml version="1.0" encoding="UTF-8"?>的鸟东西,这里的的encodeing就是解析XML时使用的编码方式,如果它设置的不正确将无法正常解析。在有中文的环境下要使用<?xml version="1.0" encoding="GBK"?>方式,还有诸如GB-2312也能行。
对于文件可以设置encodeing的值,对于从从网络上收到的xmlrpc报文,通常没有<?xml version="1.0" encoding="GBK"?>这类的东西,导致解析的出错,可以采用的方法是将接收的数据读取到一个QByteArray中,在其的头部插入<?xml version="1.0" encoding="GBK"?>,之后再将数据addData到xmlStreamer对象中。
缺点,多拷贝了两次数据。