Qt: Запись умлаута в файл
Я пытаюсь сохранить содержимое 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();
Отладка строки в этой точке показывает, что умляуты все еще не повреждены. Но при записи их в файл мой XML-файл выглядит так:
<parent>
<child attribute="הצ"/>
</parent>
Я пробовал различные возможности, такие как преобразование QString в другую кодировку или установка потокового кодека на другое значение, но лучшее, что я мог получить, было это:
<parent>
<child attribute="ֳ₪ֳ¼ֳ¶"/>
</parent>
что еще хуже.
Пожалуйста помоги.
1 ответ
Решение
Изменение QString на QByteArray с использованием document.toByteArray() сработало.
Спасибо @talamaki!