代码之家  ›  专栏  ›  技术社区  ›  Phil Hannent

带有国际字符的QSqlQuery不返回结果

  •  1
  • Phil Hannent  · 技术社区  · 17 年前

    例如,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);
    

    qryFiles.prepare(sqlStatement);
    
    if(!qryFiles.exec())
    

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

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

    我使用的是Qt4.5.2、WindowsXP、VS2008、Sqlite 3.5.1

    1 回复  |  直到 17 年前
        1
  •  1
  •   zarzych    17 年前

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

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