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