QSqlQuery returns "???" for none 英文字符串

QSqlQuery returns "???" for none English string

当运行结果下方的代码在Windows和'??????'中为'אבגדה'在 Linux 上,似乎 qry.value(0)(QVarient 类型)使用默认编码。在 Linux 中,我在驱动级别 free.dts 中使用 free.dts 和 odbc.ini

如何设置QSqlQuery使return格式为UTF16?

returned 格式是什么?

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