Hello,
I try to retrieve strings from db with QODBC (QT 5.3.1 windows).
Database locale is en_US.819 (and ODBC driver does not work if client
locale is not set to en_US.819). Strings (stored by windows application in
db) are cp1250 encoded.
And instead of "doručené" I got "doru?en?".
Here is part of my code:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("cp1250"));
QTextCodec *codec_db = QTextCodec::codecForName("latin1");
QSqlRecord rec = query.record();
qDebug() << "test: " << "doručené";
while (query.next()) {
for (int x = 0; x < rec.count(); x++) {
QVariant variant = query.value(x);
if (rec.value(x).type() == QMetaType::QString) {
QByteArray encodedString = codec_db->fromUnicode(variant.toByteArray());
qDebug() << "db_str: " << encodedString;
}
}
}
How can I fix encoding of db output?
PS: In python 3.4.1 I am able to get correct output (via pyodbc) with this:
print("db_str:", db_str.encode('latin1').decode('cp1250'))
But I would prefer to use C++ and QT5...
Zdenko
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest