LINUX.ORG.RU

Qt перекодировать из БД


0

1

Как заставить правильно печатать русские символы, которые были выбраны из таблицы. Локаль UTF8, б.д. тоже UTF8.

В этом примере «тест» печатается верно, русские символы из таблицы нет:

QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
qDebug() << QObject::trUtf8("тест");

QSqlRecord record = query.record();
while(query.next()){
       qDebug() << query.value(record.indexOf("field1")).toString() 
       << ...
}


Установи локаль общения с БД. Остальное Qt должен обрабатывать самостоятельно.

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

к сожалению, в документации к QSqlDatabase не нашел методов, похожих на selLocale.

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

Если можно поподробнее. Сам попробовал вот так

QString::fromUtf8( query.value(record.indexOf("field1")).toString() )

error: no matching function for call to ‘QString::fromUtf8(QString)’
/usr/include/qt4/QtCore/qstring.h:337:20: note: candidate is: static QString QString::fromUtf8(const char*, int)

nindza
() автор топика

Посмотри тут про свою бд, там для некоторых БД написано что с локалью.

Kosyak ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.