Comme jeu de caractères, si vous le pouvez, certainement UTF-8.
En tant que collation - c'est un peu désagréable pour les langues avec des caractères spéciaux. Il existe différents types de classements. Ils peuvent tous stocker tous les trémas et autres caractères, mais ils diffèrent dans la façon dont ils traitent les trémas dans les comparaisons, c'est-à-dire si
u = ü
est vrai ou faux ; et dans le tri (où dans les alphabets les Umlauts sont situés dans l'ordre de tri).
Pour faire court, votre meilleur pari est soit
utf8_unicode_ci
Il permet des recherches insensibles à la casse ; Il traite ß
comme ss
et utilise le tri DIN-1. Malheureusement, comme tous les classements Unicode non binaires, il traite u = ü
ce qui est une nuisance terrible car une recherche de "Muller" renverra également "Müller". Vous devrez contourner ce problème en définissant un classement compatible Umlaut en temps réel.
ou utf8_bin
Cette collation n'a pas le u = ü
problème, mais seules les recherches sensibles à la casse sont possibles.
Je ne suis pas tout à fait sûr qu'il y ait d'autres effets secondaires à l'utilisation de la collation binaire; J'ai posé une question à ce sujet ici .
Cette page de manuel mySQL donne un bon aperçu des différentes collations et des conséquences qu'elles entraînent au quotidien.
Ici est un aperçu général des classements disponibles dans mySQL.