Jako zestaw znaków, jeśli możesz, zdecydowanie UTF-8.
Jako porównanie - to trochę nieprzyjemne dla języków ze znakami specjalnymi. Istnieją różne rodzaje zestawień. Wszystkie mogą przechowywać wszystkie umlauty i inne znaki, ale różnią się sposobem, w jaki traktują umlauty w porównaniach, tj. czy
u = ü
jest prawdziwe lub fałszywe; oraz w sortowaniu (gdzie w alfabetach umlauty znajdują się w kolejności sortowania).
Krótko mówiąc, najlepszym rozwiązaniem jest
utf8_unicode_ci
Umożliwia wyszukiwanie bez uwzględniania wielkości liter; Traktuje ß
jako ss
i wykorzystuje sortowanie DIN-1. Niestety, podobnie jak wszystkie niebinarne sortowanie Unicode, traktuje u = ü
co jest strasznie uciążliwe, ponieważ wyszukiwanie „Muller” zwróci również „Müller”. Będziesz musiał obejść ten problem, ustawiając sortowanie zgodne z Umlaut w czasie rzeczywistym.
lub utf8_bin
To zestawienie nie ma u = ü
problem, ale możliwe jest tylko wyszukiwanie z uwzględnieniem wielkości liter.
Nie jestem do końca pewien, czy istnieją jakiekolwiek inne skutki uboczne korzystania z sortowania binarnego; Zadałem pytanie o to tutaj .
Ta strona podręcznika mySQL daje dobry przegląd różnych zestawień i konsekwencji, jakie niosą w codziennym użytkowaniu.
Tutaj to ogólny przegląd dostępnych zestawień w mySQL.