COLLATE LOCALIZED ASC代表什么?

private Cursor getContacts() { // Run query Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" + (mShowInvisible ? "0" : "1") + "'"; String[] selectionArgs = null; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; return managedQuery(uri, projection, selection, selectionArgs, sortOrder); } 

COLLATE LOCALIZED ASC代表什么?

Solutions Collecting From Web of "COLLATE LOCALIZED ASC代表什么?"

整理只是幻想说(sorting)。 所以这是按照asc结尾顺序的本地化偏好(即当前语言的字母表和约定)sorting。

它指示SQLite适当地sorting非ASCII字符。 带有变音符(有些称为重音符)的字符比字符Z具有更高的字节编码,所以简单的ASCIIsorting不适合许多外语。

例如,大写A char的字节码是0x41 ,大写Z char是0x5A 。 那么我们有Unicode(大写A),Unicode中的代码是0x00C1 。 所以一个普通的字节码sorting会导致Á在Z之后。

但是在具有这种特征的语言中,惯例是把那些带有变音符号的语言当作没有变音符号。 所以Á应该和平原A一起,至less在B之前

为了说明,我们下面列出了使用字节码进行sorting的名称:

  • 布伦达
  • 黛比
  • 乔治
  • 阿尔瓦罗
  • 艾力

现在使用COLLATE LOCALIZED ,它将按字符的“基数”进行sorting:

  • 阿尔瓦罗
  • 布伦达
  • 黛比
  • 艾力
  • 乔治

COLLATE是一个SQL操作符,它可以让您覆盖string的默认sorting顺序。 例如,“COLLATE NOCASE”不区分大小写,“COLLATE BINARY”区分大小写。

SQLite C接口允许您定义自定义sorting规则( http://www.sqlite.org/c3ref/create_collat​​ion.html )。