Powinieneś użyć sortowania Unicode. Możesz ustawić to domyślnie w swoim systemie lub w każdym polu twoich tabel. Istnieją następujące nazwy sortowania Unicode i to są ich różnice:
utf8_general_ci to bardzo proste zestawienie. Po prostu - usuwa wszystkie akcenty - następnie konwertuje na wielkie litery i używa kodu tego rodzaju "litery podstawowej" do porównania.
utf8_unicode_ci używa domyślnej tabeli elementów sortowania Unicode.
Główne różnice to:
- utf8_unicode_ci obsługuje tzw. rozszerzenia i ligatury, na przykład:niemiecka litera ß (U+00DF LETTER SHARP S) jest sortowana w pobliżu „ss” Litera Œ (U+0152 LATIN CAPITAL LIGATURE OE) jest sortowana w pobliżu „OE”.
utf8_general_ci nie obsługuje rozszerzeń/ligatur, sortuje wszystkie te litery jako pojedyncze znaki, a czasem w złej kolejności.
- utf8_unicode_ci to ogólnie dokładniejsze dla wszystkich skryptów. Na przykład w bloku cyrylicy:utf8_unicode_ci jest w porządku dla wszystkich tych języków:rosyjskiego, bułgarskiego, białoruskiego, macedońskiego, serbskiego i ukraińskiego. Podczas gdy utf8_general_ci jest w porządku tylko dla rosyjskiego i bułgarskiego podzbioru cyrylicy. Dodatkowe litery używane w białoruskim, macedońskim, serbskim i ukraińskim nie są dobrze posortowane.
+/- Wadą utf8_unicode_ci jest to, że jest nieco wolniejszy niż utf8_general_ci.
Więc w zależności od tego, czy wiesz, czy nie, jakich konkretnych języków/znaków będziesz używać, polecam użycie utf8_unicode_ci, który ma szerszy zasięg.