Come set di caratteri, se puoi, sicuramente UTF-8.
Come confronto, è un po' sgradevole per le lingue con caratteri speciali. Esistono vari tipi di collazioni. Tutti possono memorizzare tutte le dieresi e altri personaggi, ma differiscono nel modo in cui trattano le dieresi nei confronti, ad esempio se
u = ü
è vero o falso; e nell'ordinamento (dove negli alfabeti si trovano le dieresi nell'ordine di ordinamento).
Per farla breve, la soluzione migliore è
utf8_unicode_ci
Consente ricerche senza distinzione tra maiuscole e minuscole; Tratta ß
come ss
e utilizza l'ordinamento DIN-1. Purtroppo, come tutte le regole di confronto Unicode non binarie, tratta u = ü
il che è un terribile fastidio perché una ricerca di "Muller" restituirà anche "Müller". Dovrai ovviare a questo impostando un confronto compatibile con Umlaut in tempo reale.
o utf8_bin
Questa confronto non ha il u = ü
problema ma sono possibili solo ricerche con distinzione tra maiuscole e minuscole.
Non sono del tutto sicuro se ci siano altri effetti collaterali nell'uso delle regole di confronto binarie; Ho fatto una domanda a riguardo qui .
Questa pagina di manuale di MySQL offre una buona panoramica delle varie regole di confronto e delle conseguenze che comportano nell'uso quotidiano.
Qui è una panoramica generale sulle regole di confronto disponibili in MySQL.