LINUX.ORG.RU

Qt кодировка

 , ,


0

1

здравствуйе!

пишу под linux с системной локалью utf-8, среда - eclipse cdt.

помогите с проблемой:
получаю json ответ в виде QByteArray от QNetworkReply. в этом json есть русские буквы, например
"title":"книга".
для разбора json использую qt-json, который кладет все пары значений в QVariantMap, который есть typedef QMap<QString, QVariant>.

проблема возникает когда в такой паре значение содержит русские символы - при попытке сконструировать QString из такого QVariant'а строка в отладчике показывается пустой, но при выводе этого QString'а в qDebug() я получаю правильное значение с русскими символами. пример:

QByteArray data = reply->readAll();

QVariantMap map = QtJson::parse(QString(data)).toMap();

QString title = map["title"].toString(); // отлалчик eclipse показывает, что в title пусто
qDebug() << "Title = " << title; // верный вывод с русскими буквами

как решить данную проблему? json оправляется сервером в utf-8.

заранее спасибо



Последнее исправление: axis (всего исправлений: 2)

так может проблема в отладчике Eclipse, который не понимает QString?

alex_custov ★★★★★
()

попробуй то же самое провернуть в QtCreator

MikeDM ★★★★★
()

всем спасибо, закрываю тему. проблема была тупо в неправильной передаче объекта из qt в qml, но eclipse'овый отладчик действительно не умеет корректно показывать содержимое класса QString.

axis
() автор топика
Ответ на: комментарий от a1batross

А можно поподробнее? А то сам QtCreator тоже не особо отображает содержимое своих сложных типов (включая QString, QByteArray и всяких контейнеров)

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 1)
Ответ на: комментарий от RiseOfDeath

Ну, в гугле первая ссылка по запросу gdb qstring уже выдает что нужно.

Таких проблем в QtCreator я давно не видел.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

Хм... с пятым все работает. На четвертом такая беда встречается даже в той же версии QtCreator (ну правда там еще имела место быть кросскомпиляция)

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.