QXmlStreamWriter和西里尔文

时间:2011-07-18 08:53:24

标签: c++ xml qt

我在Windows中通过QXmlStreamWriter编写XML文件时遇到编码问题,我该如何解决?使用stream.setCodec("UTF-8")或“windows-1251”没有帮助。

QFile *file = new QFile(filename);
if (file->open(QIODevice::WriteOnly | QIODevice::Text))
         {
         QXmlStreamWriter stream(file);
         stream.setAutoFormatting(true);
         stream.writeStartDocument();
         stream.writeStartElement("СЕКЦИЯ"); // start root section
            stream.writeStartElement("FIELD");
            stream.writeAttribute("name", "Имя");
            stream.writeAttribute("value", "Иван");
            stream.writeEndElement();
         stream.writeEndElement(); // END СЕКЦИЯ
         file->close();
}

1 个答案:

答案 0 :(得分:1)

很可能对源文件中字符串文字的解释是问题,而不是流编写器的配置。 确保您的源文件以UTF-8编码并使用QString :: fromUtf8(“Imja”)等(当然是Imja in cyrillic)而不是隐式文字到QString转换。