在Android SQLite中使用COLLATE - 在LIKE语句中忽略Locales

Dan*_*vak 13 database sqlite android locale collate

在Android中创建SQLite数据库时,我设置了数据库语言环境 - db.setLocale(new Locale("cz_CZ")).这是一个捷克语的地方.

SELECT语句起作用并考虑区域设置,例如:

SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED 
Run Code Online (Sandbox Code Playgroud)

会找到条目'ščťžý'.

但使用LIKE将失败:

SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED 
Run Code Online (Sandbox Code Playgroud)

没有返回任何行.

BTW.Android中没有java.text.Normalized类.我以为我可以用标准化的文本制作第二列,删除特殊字符,这些字符将用于搜索 - 但我缺少一个类或方法如何规范化String.

mat*_*990 7

您是否看过LIKESQLite文档?它提供了有关非ASCII字符和错误的信息.也许Android安装了旧版本的SQLite,这是一个问题.

我认为不幸的是,第二个标准化列可能是您最好的选择.