我有以下问题:我尝试从数据库中查询包含变音符号字符的名称。
选择是:
String like = "ë";
String selection = "LOWER(name) LIKE \"%" + like + "%\"";
问题是即使我有包含“Ë”的行,查询也是空的。有任何想法吗?而且我不想为标准化名称建立一个单独的列。
来自SQLite 文档:-
(一个错误:默认情况下,SQLite 只理解 ASCII 字符的大写/小写。默认情况下,LIKE 运算符对超出 ASCII 范围的 unicode 字符区分大小写。例如,表达式 'a' LIKE 'A' 为 TRUE 但'æ' LIKE 'Æ' 是 FALSE。)
因此,您应该在使用 like 之前替换变音符号。从 Java 中的字符串中删除变音符号是很好的做法。或者使用小写字母和两种情况分开。
试试这个
字符串选择 = "LOWER(name) LIKE \"'%" + like + "%'\"";