EMZETT.
Giriş yap

Sıralama ve collation: metinler nasıl karşılaştırılır

Kısaca: Collation, dizelerin nasıl karşılaştırılıp sıralanacağını belirler: büyük/küçük harf, aksanlar, dil kuralları. “ä”nın “z”den önce mi sonra mı geleceğine o karar verir.

Biraz daha ayrıntılı: Bilgisayarlar metni alfabeye göre değil, kurallara göre karşılaştırır. Basit kurallar (kod noktasına göre) hızlıdır; dile uygun kurallar (Unicode collation) daha karmaşıktır ama insanlar için daha anlamlıdır.

Ayrıntılı

  • İkili: Bayt veya kod noktası değerine göre karşılaştırma. “Z”, “a”dan önce gelir, “ä” en sona. Hızlı ama kullanıcılara yabancı.
  • Dile uygun: Almanca “ä”yı “a” ile, İsveççe alfabenin sonunda sıralar. Veritabanlarında de_DE, utf8mb4_unicode_ci, und-x-icu vb. olarak.
  • Düzeyler: Büyük/küçük harf duyarlılığı olan veya olmayan (ci/cs), aksanlı veya aksansız (ai/as).
  • Sonuçlar: Benzersizlik (UNIQUE) collation’a bağlıdır: “Anna” ve “anna”, ci altında eşit sayılır. İndeksler collation’a bağımlıdır.
  • Yükseltme: İşletim sistemi veya kütüphane sürümü sıralama kurallarını değiştirirse indeksler geçersiz olabilir (PostgreSQL buna karşı uyarır).
  • Programlama: Programlama dillerinde varsayılan dize karşılaştırması çoğunlukla ikilidir. Kullanıcı listeleri için Intl.Collator, locale.strxfrm veya benzerini kullan.

Ayrıca bak: Unicode, UTF-8