Название: 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"); Название: 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> |