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!

Другие вопросы по тегам