Se référant à http://mysql.rjweb.org/utf8_collations.html
, je vois que ı=i
en 3 classements :utf8_general_ci, utf8_general_mysql500_ci, utf8_turkish_ci. Cependant, pour la collation turque, I=ı
trie avant les autres I accentués. Dans toutes les autres collations ı
trie après tout les I, comme s'il était traité comme une lettre distincte.
Pendant ce temps İ=I
dans tous les classements sauf utf8_turkish_ci.
L'intrigue se corse avec MySQL 8.0. utf8mb4_tr_0900_ai_ci (uniquement) a cet ordre :
I=Ì=Í=Î=Ï=Ĩ=Ī=Ĭ=Į=ı sort before i=ì=í=î=ï=ĩ=ī=ĭ=į=İ
Pendant ce temps ä=Ä
et ils correspondent à la plupart des autres A accentués pour la plupart des classements (y compris les classements turcs).
Conclusion :Il semble que utf8[mb4]_general_ci soit le seul classement en 5.7 ou 8.0 qui traitera toujours un i sans point (ou un I pointillé) égal à un 'i/I régulier et en même temps ignorer les trémas.
Avertissement :Les classements "généraux" ne testent pas plus d'un caractère à la fois. Autrement dit, un "tréma sans espacement" plus une voyelle ne seront pas traités comme égaux à la combinaison.
Dans ce lien... Le seul caractère æ
est trié de la même manière que les deux lettres ae
pour certaines collations. Cela est indiqué par :Aa ae=æ az
. Dans environ la moitié des autres classements, le caractère æ
est traité comme une lettre distincte ; ceci est indiqué par le fait qu'il soit après az
et avant b
. Ou même après zz
pour les collations scandinaves. Ce concept de lettres séparées s'applique parfois aux paires de lettres, par exemple cs
(hongrois) et ch
(espagnol traditionnel).