QSqlQuery返回“???”无英文字符串

问题描述:

运行下面的代码时,结果是'אבגדה'在Windows和'?????'在Linux上,似乎使用defult编码的 qry.value(0)(QVarient类型)。在Linux中,我在驱动程序级别使用了free.dts和odbc.iniQSqlQuery返回“???”无英文字符串

如何设置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