我有一个数据库,用于存储带有葡萄牙字符的字符串,例如é,ç,ã。
我在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命令行中选择时,字符串被正确打印!
答案 0 :(得分:0)
在Windows控制台中运行sqlite3
时,无法正确处理UTF-8字符。
要正确输入和显示UTF-8字符,您必须使用任何其他工具。