Проблемма такая:
Работаю с XML-документом через QDomDocument QT (QT 3.3).
Код:
Код: Выделить всё
....
QDomDocument doc ("rmo");
QFile file("rmo.config");
if(!file.open(IO_ReadOnly))
return;
if(!doc.setContent(&file))
{
file.close();
std::cout << "ERROR: file parsing error" << std::endl;
return;
}
file.close();
// Work with xml doc here
.....XML файл:
Код: Выделить всё
<rmo>
<devices>
<device id="458" type="ppu" pos="10;45" cap="Устройство 1" />
<device id="459" type="ak" pos="10;22" cap="Устройство 2" />
....
</devices>
</rmo>При этом, если в файле присутствуют русские символы (как в примере выше), QDomDocument не может их распарсить и выдает ошибку. Убираем русские символы (или заменяем латиницей) - все работает на ура.
На данный момент идеи по фиксингу следующие:
1) Писать русский текст транслитом/условными кодами и конвертировать программно.
2) Записать XML в Unicod'e, указав, соотвествующий тэг в заголовке и молиться, чтобы QT это поняла.
(Здесь возникает вопрос: как создать файл в юникодной кодировке под никсами?)
Какие будут еще идеи?