>ÁÁÁ
>ááá
>ÀÀÀ
>ààà
> aaa
> AAA
如果我做:
SELECT * FROM TB_MOVIE WHERE MOVIE_name liKE '%a%' ORDER BY MOVIE_name;
回来了
> AAA
> aaa(忽略别人)
但如果我这样做:
SELECT * FROM TB_MOVIE WHERE MOVIE_name liKE '%à%' ORDER BY MOVIE_name;
回来了
>ààà(忽略标题“ÀÀÀ”)
我想在sqlite数据库中选择字符串,而不需要重点和大小写.请帮忙.
通常,sql中的字符串比较由列或表达式ColLATE规则控制.在AndroID中,只有三个排序规则序列为 pre-defined:BINARY(默认),LOCAliZED和UNICODE.它们都不是您的用例的理想选择,而不安装新的排序规则函数的C API不会暴露在Java API中.要解决这个问题:
>向表中添加另一列,例如MOVIE_name_ASCII
>将值存储在此列中,并删除重音符号.您可以通过将字符串归一化为Unicode normal Form D(NFD)并删除非ASCII代码点来删除重音符号,因为NFD表示重音字符,大致为ASCII ASCII组合重音符号:
String asciiname = normalizer.normalize(unicodename,normalizer.Form.NFD) .replaceAll("[^\p{ASCII}]","");
>您的文本在此ASCII归一化列上搜索,但显示原始unicode列中的数据.
总结以上是内存溢出为你收集整理的如何忽略SQLite查询(Android)中的重音全部内容,希望文章能够帮你解决如何忽略SQLite查询(Android)中的重音所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)