Java 查找带有非拉丁字符的联系人时,搜索结果无效
我是Android新手,最近我遇到了这样的问题: Im使用Android联系人数据库,特别是数据表。我把一些新的mimetype信息放在那里,并试图在搜索过程中查找这些信息。问题是,我使用类似SQLite的运算符,它对非拉丁字符区分大小写。另一个问题是,我不能以任何方式更改数据库,因为它是android内置数据库Java 查找带有非拉丁字符的联系人时,搜索结果无效,java,android,sqlite,android-contacts,Java,Android,Sqlite,Android Contacts,我是Android新手,最近我遇到了这样的问题: Im使用Android联系人数据库,特别是数据表。我把一些新的mimetype信息放在那里,并试图在搜索过程中查找这些信息。问题是,我使用类似SQLite的运算符,它对非拉丁字符区分大小写。另一个问题是,我不能以任何方式更改数据库,因为它是android内置数据库 Builder builder = Data.CONTENT_URI.buildUpon(); loader.setSelection(getIndividualsSelection
Builder builder = Data.CONTENT_URI.buildUpon();
loader.setSelection(getIndividualsSelection());
query = query.trim();
if( (null != query) && !query.equals("")){
loader.setSelection(Data.MIMETYPE + "='" +
MY_MIMETYPE + "' " + " AND ( " +
MY_DATA_COLUMN +
" LIKE '"+ query + "%' " +
specialCharsEscape + " COLLATE NOCASE)");
loader.setSelectionArgs(null);
loader.setUri(builder.build());
loader.setProjection(MY_PROJECTION);
loader.setSortOrder(MY_SORT_ORDER);
}
这是LoaderCallbacks的onCreateLoader函数的全部内容,其中loader为CursorLoader类型。你知道如何强制我的SQLite不区分大小写吗
我尝试过使用SQLite函数UCASE和LCASE,但都不起作用。使用Regexp会导致此数据库出现异常,同时使用MATCH。。。非常感谢您的帮助。Android已经提供了帮助
要真正能够使用排序规则进行比较,请在之间使用,而不是像
那样使用;例如:
'mąka'COLLATE UNICODE和'mąka'之间的MyDataColumn我如何使用BETWEEN来比较两个字符串?例如,当我键入mĄka时,我希望我的代码在数据1中找到与mąka的联系。解决方案不起作用。它不返回匹配的不区分大小写的记录,而是不返回任何内容。