crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDomDocument + QXmlQuery - проблемы кодировки или может чего еще
woldemarr
  опции профиля:
сообщение 13.8.2010, 13:40
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 21.7.2010
Пользователь №: 1896

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток.

Для начала опишу то, как и на чем работаю:
Windows 7 Ultimate
Visual Studio 2008 Developer Edition
Qt 4.6.3 для мы2008
Все xml описаны так <?xml version="1.0" encoding="windows-1251"?> и сделаны в notepad и сохранены в кодировке ANSI (по-умолчанию).
В файле проекта main.cpp описал внутреннюю кодировку:
QTextCodec *codec = QTextCodec::codecForName("CP1251");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);

Проблема начинается тогда, когда я хочу использовать XQuery или XPath для получения из xml нужного мне узла. Как я понял QDomDocument этого делать не позволяет, для этого нужно использовать QXmlQuery. При его использовании я делаю так:

QString XQuery = "/root/nodelevel1/node11[@name = 'something']";
QXmlQuery query;
query.setFocus(stringXml); //xml в виде QString
query.setQuery(XQuery);
QString sResult;
bool bRes = query.evaluateTo(&sResult);

В итоге я строке sResult я получаю нужный мне результат, но русский текст там напрочь убит кракозяблами.

Сталкнулся вот с такой проблемой, подскажите как ее решить, уже голову всю сломал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
woldemarr
  опции профиля:
сообщение 15.8.2010, 15:24
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 21.7.2010
Пользователь №: 1896

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все разобрался.

Установил в xml encoding в UTF-8, сохранил его как UTF-8, в программе evaluateTo делаю с QXmlFormatter и буффер приобразую через fromUtf8().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 1:39