用变音符号的Andr​​oid SQLite的查询名称 [英] Android sqlite query names with diacritics

查看:213
本文介绍了用变音符号的Andr​​oid SQLite的查询名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下问题: 我试图从数据库中查询包含的字符用变音符号的名字。

I have the following problem: I try to query from the database the names that contain characters with diacritics.

的选择是:

String like = "ë";
String selection = "LOWER(name) LIKE \"%" + like + "%\"";

现在的问题是,即使我有包含E的查询为空行。有任何想法吗? 我不想要建立的标准化名称的单独列。

The problem is even if i have rows that contain "Ë" the query is empty. Any ideas? And I do not want to build a separate column for normalized names.

推荐答案

SQLite的DOC : -

(的bug:SQLite的只能理解为ASCII字符大/小写默认情况下,LIKE操作符的情况下默认情况下,超出ASCII范围UNI code字符敏感。例如。 ,前pression'一'LIKE'A'是真实的,但'æ'LIKE'æ'是假。)

(A bug: SQLite only understands upper/lower case for ASCII characters by default. The LIKE operator is case sensitive by default for unicode characters that are beyond the ASCII range. For example, the expression 'a' LIKE 'A' is TRUE but 'æ' LIKE 'Æ' is FALSE.)

所以,你应该喜欢使用前更换变音符号。 <一href="http://stackoverflow.com/questions/10699849/remove-diacritics-from-string-in-java/10700023#10700023">Remove从字符串中的Java附加符号是很好,所以做到这一点。或者用较低的,要么病例中分离出来。

So, you should replace diacritics before using with like. Remove diacritics from string in Java is good SO to do that. Or to use lower and either cases separate.

这篇关于用变音符号的Andr​​oid SQLite的查询名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆