2013-06-05 32 views
1

我有一个UTF8 XML文件。我解析它以检索属性,但检索的属性不是UTF-8,而是我为任何UTF-8值获取??????。 该文件具有其他语言的文本,即UTF-8。QXmlStreamReader,编解码器utf-8需要

QFile* file = new QFile("d://in.xml"); 

if (!file->open(QIODevice::ReadOnly | QIODevice::Text)) { 
     return; 
} 
QXmlStreamReader xml(file); 
QList< QMap<QString,QString> > head; 

while(!xml.atEnd() && 
     !xml.hasError()) { 
    QXmlStreamReader::TokenType token = xml.readNext(); 

    if(token == QXmlStreamReader::StartDocument) { 
     xml.documentEncoding(); 
     continue; 
    } 
+0

你的xml文件是以行开头吗?<?xml version =“1.0”encoding =“UTF-8”?>'? – Amartel

回答

2

我还没有使用的XML流自己,但如果这是一个类似的问题,因为我的,你可能需要设置QTextCodec为UTF-8如下:

#include <QTextCodec> 
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); 

做绕您初始化您的QApplicationQCoreApplication的时间。