android - sqlite 中的重音搜索 (android)

标签 android sqlite android-sqlite

我有一列,其中一些元素包含重音字母。 例如:Grambú

我的要求是,当我搜索“Grambu”时,我也应该在结果中得到“Grambú”。

针对此要求,我尝试为该特定列使用“COLLATE NOCASE”参数。 但这没有用。

我在网上搜索解决方案时,发现很多人建议将重音字符归一化 并基于它创建另一列作为唯一选项。

这个问题还有其他更简单的解决方案吗?

最佳答案

COLLATE NOCASE 有效 only for the 26 upper case characters of ASCII .

使用 setLocale() 将数据库的语言环境设置为支持重音字符的语言环境并使用 COLLATE LOCALIZED

您也可以尝试使用 COLLATE UNICODE . 但要注意这个错误:SQLite UNICODE sort broken in ICS - no longer case-insensitive .

检查 the documentation在 Android 中提及这两个整理器。

另请查看此 online collation demo tool .

关于android - sqlite 中的重音搜索 (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083446/

相关文章:

android - 如何解决这些不匹配问题?

Android:如何以编程方式在 LinearLayout 中将 TextView 水平居中

sqlite - React-native SQLite 批量插入

sql - 重构 SQL(解决方法 RIGHT OUTER JOIN)

android - 使用房间持久库更新参数

java - 跨类共享公共(public)代码的最佳实践

java - JPA/Hibernate - 共享主键

android - 未通知 SQLiteCursors,aidl 文件不存在

android - 数据库未存储在 Android 手机设备上

android - 具有点击功能的自定义图像按钮