Jako znaková sada, pokud můžete, určitě UTF-8.
Co se týče řazení - to je u jazyků se speciálními znaky trochu ošklivé. Existují různé typy porovnávání. Všechny mohou uložit všechny přehlásky a další postavy, ale liší se v tom, jak s přehláskkami zacházejí při srovnání, tedy zda
u = ü
je pravdivý nebo nepravdivý; a v řazení (kde jsou v abecedách přehlásky umístěny v pořadí řazení).
Abych to zkrátil, nejlepší volbou je buď
utf8_unicode_ci
Umožňuje vyhledávání bez rozlišení velkých a malých písmen; Zachází s ß
jako ss
a používá třídění podle DIN-1. Bohužel, stejně jako všechna nebinární kolace Unicode, zachází s u = ü
což je hrozná otrava, protože hledání "Muller" vrátí také "Müller". Budete to muset obejít nastavením řazení s vědomím přehlásky v reálném čase.
nebo utf8_bin
Toto řazení nemá u = ü
problém, ale je možné pouze vyhledávání rozlišující malá a velká písmena.
Nejsem si úplně jistý, zda má použití binárního řazení nějaké další vedlejší účinky; Zeptal jsem se na to zde .
Tato manuálová stránka mySQL poskytuje dobrý přehled o různých porovnáváních a důsledcích, které přináší při každodenním používání.
Zde je obecný přehled o dostupných kolacích v mySQL.