整理本地化 ASC 代表什么?

2022-09-01 11:32:04
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


答案 1

整理只是花哨的说话(嗯)。因此,这是基于本地化首选项(即当前语言的字母表和约定)按asc结尾顺序进行排序。


答案 2

它指示 SQLite 对非 ASCII 字符进行适当的排序。带有变音符号的字符(有些人称它们为重音符号)的字节代码比字符 Z 高,因此普通的 ASCII 排序不适合许多外语。

例如,大写字母 A 字符的字节码是 ,大写字母 Z 字符的字节代码是 。然后我们有Á(大写的A accute),Unicode中的代码是。因此,普通字节代码排序将导致 Á 位于 Z 之后。0x410x5A0x00C1

但是在具有这种字符的语言中,约定是将带有变音符号的语言放在没有变音符号的位置。因此,Á 应该与普通 A 在一起,至少在 B 之前。

为了说明这一点,我们下面列出了使用字节码排序的名称:

  • 布伦达
  • 黛比
  • 乔治
  • 阿尔瓦罗
  • 埃里科

现在使用 it 将按字符的“基数”排序:COLLATE LOCALIZED

  • 阿尔瓦罗
  • 布伦达
  • 黛比
  • 埃里科
  • 乔治

推荐