Доброго времени суток.
Для начала опишу то, как и на чем работаю:
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 я получаю нужный мне результат, но русский текст там напрочь убит кракозяблами.
Сталкнулся вот с такой проблемой, подскажите как ее решить, уже голову всю сломал.