2016-08-18 54 views
0

運行下面的代碼時,結果是'אבגדה'在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); 
     } 
    } 

    // ... 
} 

回答

0

我找到了解決辦法,行client charset = UTF-8應該被添加到freetds.conf文件

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