QtSQL读取特殊字符

时间:2015-03-02 19:33:49

标签: qt encoding utf-8 sqlite character-encoding

我有一个数据库,用于存储带有葡萄牙字符的字符串,例如é,ç,ã。

我在Notepad ++上使用INSERT查询编辑文件,并将UTF-8设置为编码。在'PRAGMA encoding =“UTF-8”'设置完成后,我也在sqlite3数据库上插入。

现在,当我尝试在我的Qt应用程序上阅读它时,查询返回无效字符。我做了一个查询,例如:

QSqlQuery query;
QString description;

query.prepare("SELECT * FROM Training");
query.exec();

while(query.next())
{
    description = query.record().field("description").value().toString().toUtf8();
    ...
}

我已经尝试过没有'toUtf8()'和'toLatin1()'。这些都没有奏效。我只得到问号或垃圾。

编辑: 当我直接从sqlite3命令行中选择时,字符串被正确打印!

1 个答案:

答案 0 :(得分:0)

在Windows控制台中运行sqlite3时,无法正确处理UTF-8字符。

要正确输入和显示UTF-8字符,您必须使用任何其他工具。