QDomDocument + QXmlQuery - проблемы кодировки или может чего еще |
Здравствуйте, гость ( Вход | Регистрация )
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(). |
|
|
Текстовая версия | Сейчас: 28.11.2024, 1:39 |