我有以下问题: 我尝试从数据库中查询包含带变音符号的字符的名称。
选择是:
String like = "ë";
String selection = "LOWER(name) LIKE \"%" + like + "%\"";
问题是即使我有包含“È”的行,查询也是空的。有任何想法吗? 而且我不想为规范化名称建立一个单独的列。
最佳答案
来自 SQLite DOC :-
(一个错误:默认情况下,SQLite 只理解 ASCII 字符的大写/小写。对于超出 ASCII 范围的 unicode 字符,LIKE 运算符默认区分大小写。例如,表达式 ' a' LIKE 'A' 是 TRUE 但 'æ' LIKE 'Æ' 是 FALSE。)
因此,您应该在使用 with like 之前替换变音符号。 Remove diacritics from string in Java这样做很好。或者单独使用小写字母和任一字母。
关于带有变音符号的 Android sqlite 查询名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488622/