【发布时间】:2011-03-29 16:51:43
【问题描述】:
在 Android 中创建我的 SQLite 数据库时,我设置了数据库区域设置 - db.setLocale(new Locale("cz_CZ"))。这是捷克语言环境。
SELECT 语句有效并考虑了语言环境,例如:
SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED
将找到条目“ščťžý”。
但是使用 LIKE 会失败:
SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED
没有返回任何行。
顺便说一句。 Android 中没有 java.text.Normalized 类。我想我可以用规范化的文本创建第二列,去掉特殊字符,用于搜索 - 但我缺少如何规范化字符串的类或方法。
【问题讨论】:
-
我在这里找到了部分答案:stackoverflow.com/questions/3211974/… 但这只是删除重音的方法。我将不得不在我的数据库中使用规范化的文本创建一个重复的列...难道没有更好的方法吗?
标签: android database sqlite locale collate