如何忽略SQLite查询(Android)中的重音
发布时间:2020-12-12 19:10:18 所属栏目:百科 来源:网络整理
导读:我是adnroid的新人,我正在使用sqlite查询,但是问题是在我的字符串中使用口音.例如: ááá ááá ààà ààà aaa AAA 如果我做: SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%a%' ORDER BY MOVIE_NAME; 回来了 AAA aaa(忽略别人) 但如果我这样做:
我是adnroid的新人,我正在使用sqlite查询,但是问题是在我的字符串中使用口音.例如:
>ááá 如果我做: SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%a%' ORDER BY MOVIE_NAME; 回来了 > 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 String asciiName = Normalizer.normalize(unicodeName,Normalizer.Form.NFD) .replaceAll("[^p{ASCII}]",""); >您的文本在此ASCII归一化列上搜索,但显示原始unicode列中的数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |