当运行下面的代码时,在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