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
当运行结果下方的代码在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