读书人

QT3 读XML文件 显示汉字有关问题 高手

发布时间: 2013-03-12 11:19:35 作者: rapoo

QT3 读XML文件 显示汉字问题 高手请帮帮忙


<?xml version="1.0" encoding="GB2312"?>
<LIST>
<NODE value="2001">
<LANGUAGE value="en">
<content value="content2001"></content>
<cause value="cause2001"></cause>
<measure value="measure2001"></measure>
</LANGUAGE>
<LANGUAGE value="ch">
<content value="内容2001"></content>
<cause value="原因2001"></cause>
<measure value="处理2001"></measure>
</LANGUAGE>
</NODE>
<NODE value="2002">
<LANGUAGE value="en">
<content value="content2002"></content>
<cause value="cause2002"></cause>
<measure value="measure2002"></measure>
</LANGUAGE>
<LANGUAGE value="ch">
<content value="内容2002"></content>
<cause value="原因2002"></cause>
<measure value="处理2002"></measure>
</LANGUAGE>
</NODE>
</LIST>

上面是XML文件
我通过

...
QDomNode n = nlst.item(i);
n.toElement().attribute("value");
...

读取value值 可是读回来汉字部分都是“???”
改用下面写法也无效

...
QTextCodec *gbk_codec = QTextCodec::codecForName("GBK");
node.content = gbk_codec->toUnicode(n.toElement().attribute("value"));
...

求帮忙解决~先谢谢了
[解决办法]

node.content = gbk_codec->toUnicode(n.toElement().attribute("value"));
改成
node.content = gbk_codec->toUnicode(n.toElement().attribute("value").toAscii());
[解决办法]
没用过Qt3,你最后的尝试表明你的思路有问题。

你应该确保你的xml是作为gb2312读入的,而不是读入错误后再去想办法修正(有些东西是不可逆的,gbk的字节流作为utf8解码后,你不能再通过它得到gbk流)

读书人网 >QT开发

热点推荐