Russian Qt Forum
Ноябрь 22, 2024, 22:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: XML и utf-8 под win  (Прочитано 7186 раз)
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);

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

Проблема наверняка очень просто решаема, но поиск совсем не помогает Грустный
Записан
Sergeich
Гость
« Ответ #1 : Апрель 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();
Больше никаких хитрых ходов для чтения не требуется.
« Последнее редактирование: Апрель 29, 2008, 21:59 от Sergeich » Записан
altVis
Гость
« Ответ #2 : Апрель 29, 2008, 22:12 »

Так и было изначально.
Но в вин выводит вопросы.
Записан
Sergeich
Гость
« Ответ #3 : Апрель 29, 2008, 22:56 »

Выводит куда? На консоль, в виджет, в файл? Кинь кусок кода для ввода/вывода и сам xml-файл
« Последнее редактирование: Апрель 29, 2008, 23:00 от Sergeich » Записан
altVis
Гость
« Ответ #4 : Апрель 29, 2008, 22:58 »

в QTextBrowser.
Записан
Sergeich
Гость
« Ответ #5 : Апрель 29, 2008, 23:01 »

Так... значит проблемы с именно с чтением. Как выглядит XML-файл?
Записан
altVis
Гость
« Ответ #6 : Апрель 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>
Записан
Sergeich
Гость
« Ответ #7 : Апрель 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>
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 20.