QtSQL读取特殊字符

QtSQL reading special characters

我有一个数据库,它存储带有 é、ç、ã 等葡萄牙语字符的字符串。

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

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

QSqlQuery query;
QString description;

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

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

我已经尝试过不使用 'toUtf8()' 和使用 'toLatin1()'。 None 的工作。我只得到问号或垃圾。

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

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

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