Есть типа код который в xml пишет, я использую такое
QString str="Обычный текст \"Текст в кавычках\"";
...
QString xml = "Проверка кодировки";
QXmlStreamWriter stream(&xml);
stream.setAutoFormatting(true);
stream.writeStartDocument();
stream.writeStartElement("Begin");
...
stream.writeTextElement("Tag", str);
...
stream.writeEndElement();//Begin
stream.writeEndDocument();
QString s_out_xml = "any.xml";
QFile *f_xml = new QFile(s_out_xml);
f_xml->open(QIODevice::WriteOnly);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
xml = xml.replace("<?xml version=\"1.0\"?>", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml = xml.replace("Проверка кодировки", "");
QByteArray encodedString = codec->fromUnicode(xml);
f_xml->write(encodedString);
f_xml->close();
<Tag>Обычный текст "Текст в кавычках"</Tag>