Dovresti usare un confronto Unicode. Puoi impostarlo di default sul tuo sistema o su ogni campo delle tue tabelle. Esistono i seguenti nomi di confronto Unicode e queste sono le loro differenze:
utf8_general_ci è una raccolta molto semplice. Rimuove semplicemente tutti gli accenti, quindi converte in maiuscolo e utilizza il codice di questo tipo di lettera del risultato "lettera base" per confrontare.
utf8_unicode_ci utilizza la tabella degli elementi di confronto Unicode predefinita.
Le differenze principali sono:
- utf8_unicode_ci supporta le cosiddette espansioni e legature, ad esempio:la lettera tedesca ß (U+00DF LETTER SHARP S) è ordinata vicino a "ss" La lettera Œ (U+0152 LATIN CAPITAL LIGATURE OE) è ordinata vicino a "OE".
utf8_general_ci non supporta espansioni/legature, ordina tutte queste lettere come singoli caratteri e talvolta nell'ordine sbagliato.
- utf8_unicode_ci è generalmente più accurato per tutti gli script. Ad esempio, in cirillico:utf8_unicode_ci va bene per tutte queste lingue:russo, bulgaro, bielorusso, macedone, serbo e ucraino. Mentre utf8_general_ci va bene solo per il sottoinsieme russo e bulgaro di cirillico. Le lettere extra usate in bielorusso, macedone, serbo e ucraino non sono ordinate bene.
+/- Lo svantaggio di utf8_unicode_ci è che è un po' più lento di utf8_general_ci.
Quindi, a seconda, se lo sai o meno, quali lingue/caratteri specifici utilizzerai, ti consiglio di utilizzare utf8_unicode_ci che ha una copertura più ampia.