Java 查找带有非拉丁字符的联系人时,搜索结果无效

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

我是Android新手,最近我遇到了这样的问题:

Im使用Android联系人数据库,特别是数据表。我把一些新的mimetype信息放在那里,并试图在搜索过程中查找这些信息。问题是,我使用类似SQLite的运算符,它对非拉丁字符区分大小写。另一个问题是,我不能以任何方式更改数据库,因为它是android内置数据库

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的联系。解决方案不起作用。它不返回匹配的不区分大小写的记录,而是不返回任何内容。