Qt:将变音符号写入文件

时间:2018-02-06 09:19:53

标签: c++ qt non-ascii-characters qfile qtextstream

我正在尝试将QDomDocument的内容存储到文件中。该文档包含一个德语变音符号,它无法正确保存到文件中。

我的QDomDocument“文档”的结构如下:

<parent>
    <child attribute="äüö"/>
</parent>

我把它保存到这样的XML文件中:

QString string = document.toString();
QFile file("/path/to/my/file.xml");
file.open(QIODevice::WriteOnly | QIODevice::Text)
QTextStream txtStream(&file);
txtStream<< string;
file.close();

q在那一点上调试字符串会发现变音符号仍然完好无损。但是当将它们写入文件时,我的XML文件如下所示:

<parent>
    <child attribute="הצ"/>
</parent>

我尝试了各种可能性,例如将QString转换为不同的编码,或者将流编解码器设置为不同的值,但我能得到的最好的是:

<parent>
    <child attribute="ֳ₪ֳ¼ֳ¶"/>
</parent>

甚至更糟。

请帮忙。

1 个答案:

答案 0 :(得分:1)

使用document.toByteArray()将QString更改为QByteArray。

谢谢@talamaki!