QXmlStreamReader,需要编解码器utf-8

时间:2013-06-05 20:21:34

标签: qt qxmlstreamreader

我有一个UTF8 XML文件。我正在解析它以检索属性,但检索的属性不是UTF-8,而是我获得任何UTF-8值的??????。 该文件包含其他语言的文本,即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;
    }

1 个答案:

答案 0 :(得分:2)

我自己没有使用过XML流,但如果这是与我类似的问题,您可能需要将QTextCodec设置为UTF-8,如下所示:

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

在您初始化QApplicationQCoreApplication时,请执行此操作。