2013-06-05 33 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的時間。