Russian Qt Forum

Qt => XML => Тема начата: altVis от Апрель 29, 2008, 21:34



Название: XML и utf-8 под win
Отправлено: altVis от Апрель 29, 2008, 21:34
Вечер добрый!
В linux с utf-8 локалью проблем с сохранением текста на разных языках не испытывал, но под win проявилась проблема с сохранением и чтением данных в xml.
Я никогда до этого не сталкивался с xml, поэтому несовсем понимаю, что требуется для работы с текстом на разных языках.
Под лин не использовал никаких textcodec, просто записывал и считывал QString.
Добавил хэдер в xml <?xml version='1.0' encoding='utf-8'?>
Пытался считывать следющим образом:

QDomElement msg = rootElement.lastChildElement("msg");
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QByteArray t;
t.append(msg.text());
QString text = codec->toUnicode(mesg);

получаю набор вопросов.

Проблема наверняка очень просто решаема, но поиск совсем не помогает :(


Название: Re: XML и utf-8 под win
Отправлено: Sergeich от Апрель 29, 2008, 21:56
Читаем великий и могучий:
Цитировать
The QDom classes are typically used as follows:
Код:
     QDomDocument doc("mydocument");
     QFile file("mydocument.xml");
     if (!file.open(QIODevice::ReadOnly))
         return;
     if (!doc.setContent(&file)) {
         file.close();
         return;
     }
     file.close();
Больше никаких хитрых ходов для чтения не требуется.


Название: Re: XML и utf-8 под win
Отправлено: altVis от Апрель 29, 2008, 22:12
Так и было изначально.
Но в вин выводит вопросы.


Название: Re: XML и utf-8 под win
Отправлено: Sergeich от Апрель 29, 2008, 22:56
Выводит куда? На консоль, в виджет, в файл? Кинь кусок кода для ввода/вывода и сам xml-файл


Название: Re: XML и utf-8 под win
Отправлено: altVis от Апрель 29, 2008, 22:58
в QTextBrowser.


Название: Re: XML и utf-8 под win
Отправлено: Sergeich от Апрель 29, 2008, 23:01
Так... значит проблемы с именно с чтением. Как выглядит XML-файл?


Название: Re: XML и utf-8 под win
Отправлено: altVis от Апрель 29, 2008, 23:15
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE qhistory>
<history>
 <date month="4" year="2008" />
 <msg nick="user" in="0" day="29" time="20:24:6" >тест</msg>
</history>


Название: Re: XML и utf-8 под win
Отправлено: Sergeich от Апрель 30, 2008, 00:11
ну ежели так надо бы сменить хидер на <?xml version='1.0' encoding='windows-1251'?> или <?xml version='1.0' encoding='koi8-r'?> или в_какой_кодировке_выложенный_хмл. Под utf-8 оно должно выглядеть где-то так:
Цитировать
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE qhistory>
<history>
 <date month="4" year="2008" />
 <msg nick="user" in="0" day="29" time="20:24:6" >С'РчС_С'</msg>
</history>