Для чего стоит Collate Localize Asc?
-
24-09-2019 - |
Вопрос
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
стоять?
Решение
Собрать просто нравится говорить за сортировку (хорошо вроде). Так что это сортировка порядка на основе локализованных предпочтений (т.е. алфавит текущего языка и конвенций) в asc.Окончание заказа.
Другие советы
Он поручает SQLite сортировать не-ASCII символы соответствующим образом. Чарс с диакритиками (некоторые вызов им акценты) имеют более высокие байтовые коды, чем персонаж z, поэтому простой сорт ASCII не соответствует многим иностранным языкам.
Например, Capital Char's Byte Code 0x41
и столица z char's 0x5A
. Отказ Тогда у нас есть á (Capital a accute), какой код в Unicode является 0x00C1
. Отказ Таким образом, простой байтовый код сорт приведет к тому, что á был после Z.
Но на языках, которые имеют такие персонажи, Конвенция состоит в том, чтобы поставить тех диакритиков, как если бы у них не было диакритической. Так что á должно быть вместе с равниной a, по крайней мере, до Б.
И, чтобы проиллюстрировать, у нас ниже списка имен, сортируемых с использованием их Bytecode:
- Доверие
- Дебби
- Джордж
- Álvaro.
- Érico.
Теперь используя COLLATE LOCALIZED
Это будет сортировать по «базе» персонажа:
- Álvaro.
- Доверие
- Дебби
- Érico.
- Джордж
Collate - это оператор SQL, который позволяет переопределить порядок сортировки по умолчанию для строк. Например, «сополучик NOCASE» делает сравнение нечувствительным к регистру, а «сопоставление двоина» делает чувствительное к регистру практики.
Интерфейс SQLite C позволяет определить пользовательские сопоставления (http://www.sqlite.org/c3ref/create_Collation.html.).