1

我有一个包含 ClipArt 标记的 Sqlite 数据库,我们正在将该数据库翻译成瑞典语,但是如果字符是非英语英国人,我的数据库查询现在不会返回结果。

例如, fisk == fish 并且效果很好,但是 öst == east 但失败了。

我正在从 QLineEdit 在 QString 中构造查询:

    sqlStatement += QString(" FileID IN (SELECT TLFileID FROM tblTags "
            " INNER JOIN tblTagLinks ON tagId = TLTagId "
            " WHERE tagLanguage LIKE '%1' "
            " AND (tagName LIKE '%2' OR tagName LIKE '%2s' "
            " OR tagLangSWEDISH LIKE '%2' "
            " OR tagLangFINNISH LIKE '%2' "
            " OR tagLangITALIAN LIKE '%2' ))").arg(defaultLanguage, tag);

然后将其转换为 QSqlQuery:

qryFiles.prepare(sqlStatement);

if(!qryFiles.exec())

我知道数据库有字符,因为我一直在使用 Sqlite 管理工具和 Excel 将数据导入和导出为 CSV 供翻译人员翻译。

我必须以特殊方式打开数据库吗?

我正在使用 Qt 4.5.2、Windows XP、VS2008、Sqlite 3.5.1

4

1 回答 1

1

我知道这可能很明显,但是您是否检查了您的数据库和应用程序使用的字符集?我猜你在一个中使用本机 Windows 编码,在另一个中使用 UTF8。

很抱歉,答案很明显,但这是我的大多数国际化问题的原因。

于 2009-09-14T18:18:41.940 回答