QSqlQuery 返回 "???" 对于无英语字符串



当运行下面的代码时,在Windows和'?????中结果是' '在Linux上,似乎qry.value(0) (QVarient类型)使用默认编码。在Linux中,我使用free。驱动级的DTS和odbc.ini

如何设置QSqlQuery使返回格式为UTF16?

返回的格式是什么?

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("..."); //Some valid connection string
QByteArray ba;
char* _buffer11;
if(db.open())
{
    QSqlQuery qry(db);
    qry.prepare("Select UTF16 From DataTypes WHERE ID=9");
    if(qry.exec())
    {
        QVariantList resultList;
        while(qry.next())
        {
            resultList << qry.value(0);
        }
    }
    // ...
}

我找到了解决方案,client charset = UTF-8行应该添加到freetds.conf文件

[SERVER_1]
host     = 192.168.192.44
instance = SQLEXPRESS   
tds version = 8.0
client charset = UTF-8

相关内容

  • 没有找到相关文章

最新更新