【发布时间】:2012-09-19 09:33:26
【问题描述】:
我正在尝试在 android 中查询 SQLite 数据库,其中带有重音符号的法语字符应像普通拉丁字符一样处理,例如:
SELECT * FROM x WHERE y LIKE %cafe%
应该返回
café, câfè, ...
我已经用谷歌搜索了一整天,并阅读了关于 stackoverflow 的所有相关帖子。 无法向包含规范化标题的表添加列,因为数据库是从服务器获取并由第三方维护的。
使用其他帖子中提到的排序规则,例如
Latin1_general_CI_AI
也没有选择,因为 SQLite 仅支持 3(在 android 5 中)对我没有帮助的排序规则。
将android中的数据库设置为
Locale.FRENCH
并使用排序规则
COLLATE LOCALIZED
也不行。
我知道 iOS (DiacriticInsensitiveSearch) 中有一些标志会自动执行此操作,所以我希望类似的东西也可用于 android。
有什么想法吗?提前致谢!
【问题讨论】:
-
根据 sqlite.org/datatype3.html 第 6 节,我认为 sqlite3 不支持那种东西
-
然而,根据这个问题stackoverflow.com/questions/3480999/… = 比较可能有效
-
不确定 FTS3/4 是否可以以某种方式做到这一点,但您可以尝试一下。不过stackoverflow.com/q/12500799/995891 对这些字符有问题。
-
感谢您的回答 njzk2。 =比较有效,但在我的情况下,因为字符串“cafe”也应该找到像“café au lait”这样的标题。如果我使用 = 比较,情况并非如此......但无论如何谢谢!
-
@zapl:谢谢!会检查一下,让你知道我发现了什么!
标签: android database sqlite collation