-
...general_ci
est simple. Il n'assimile pas les combinaisons à 2 caractères (comme avec une marque sans espacement) à l'équivalent à un seul caractère. -
...unicode_520_ci
vient de la version Unicode 5.20, la dernière version disponible lorsque MySQL l'a récupéré. Il gère des choses comme avoir une commande pour Emoji, ce que les versions précédentes n'avaient pas. -
Avec MySQL 8.0, le classement préféré est
utf8mb4_0900_ai_ci
, basé sur Unicode 9.0. -
...<language>_ci
gère les variations trouvées dans la langue donnée. Par exemple, devraitch
etll
en espagnol être traité comme des "lettres" et trier entrecz
etd
, etlz
etm
. -
Pour une utilisation générale, n'utilisez pas
...general_ci
, utilisez la dernière version dérivée d'Unicode. Pour les situations spécifiques à une langue, choisissez l'un des autres classements. -
Je sais comment (ou même si) le chinois et l'arabe sont triés différemment dans les différentes collations. Cependant, je vois
...persion_ci
, donc je soupçonne qu'il y a un problème. -
Utilisez
utf8mb4
, pasutf8
, d'autant plus que vous avez besoin du chinois.