• 12028阅读
  • 5回复

[提问]从XML中读取的中文在QT中显示为乱码 [复制链接]

上一主题 下一主题
离线bondsman
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-17
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
XML内容为:

<?xml version="1.0" encoding="iso-8859-1"?>
<demolauncher>
  <scenes>
    <scene name="friend" image="picture/friend.jpg" caption = "好友"/>

......


QT 代码为:
element.attribute("caption"),显示后为 ??


刚接触QT两天,在网络上看了下解决方案,都不太符合;请大家对QT中中文编码的方式详细说一下,谢谢!
离线cahwxy

只看该作者 1楼 发表于: 2010-06-17
<?xml version="1.0" encoding="UTF-8"?>
[ 此帖被xtfllbl在2010-06-17 11:39重新编辑 ]
离线bondsman
只看该作者 2楼 发表于: 2010-06-17
回 1楼(cahwxy) 的帖子
还是一样的乱码。
离线dbzhang800

只看该作者 3楼 发表于: 2010-06-17
Re:回 1楼(cahwxy) 的帖子
引用第2楼bondsman于2010-06-17 17:39发表的 回 1楼(cahwxy) 的帖子 :
还是一样的乱码。

能不能告诉大家,“好友”这两个汉字你到底用的什么编码?
gb2312 ? utf8? utf16 ? ...
离线bondsman
只看该作者 4楼 发表于: 2010-06-18
有没有什么办法查看,对我而言就是用的notepad++用搜狗拼音敲进去的,操作系统是32位的中文版win7;所以应该说是GB2312,但是我在XML中也用过了encoding="GB2312",乱码照常。是不是DOM读XML的时候要进行什么设置呢。
离线banyibanyi

只看该作者 5楼 发表于: 2010-06-18
程序读取的时候有没有设置为相应的编码?
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("Utf8"));

    QTextCodec::setCodecForTr(QTextCodec::codecForName("Utf8"));

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Utf8"));
快速回复
限100 字节
 
上一个 下一个