Autor Zpráva
Jack Finger
Profil
ahoj, chci se zeptat na rozdíly a praktičnost použití mezi utf8_bin, utf8_unicode_ci a utf8_czech_ci. co je lepší, použitelnější nebo tak něco, nějak mi to uniká, proč je jich tam tolik... možná to zní jak dotaz lamy, ale tak asi jsem no :o) nevím pro co se mám rozhodnout b používání. díky
Kajman_
Profil *
Rozdíl je ve výsledcích operací <>= dvou řetězců. Binární porovnání porovnává podle binárního zápisu znaků. Czech_ci dává ch za h a ž za z - tedy aplikuje česká pravidla pro porovnání (tedy i seřazení).
Marek_k
Profil *
Jednoznačně vysvětlující:-)
http://smog.blackpig.cz/blog/clanky/ktere-utf8-zvolit-pro-mysql
Jack Finger
Profil
Kajman
nějak jsem moc nepochopil jak se řazení písmen v abecedě projeví v porovnávání <>=, můžeš mi to prosím vysvětlit? :o)
Jack Finger
Profil
aha, tak jsem koukl na odkaz, ale tam píšou, že pro vícejazyčný web je lepší utf8_unicode. ale co když mezi jazykama bude i čeština? pak se znaky budou řadit špatně... nedá se to nějak vychytat?
// edit: Marek_k díky za odkaz ;o)
Kajman_
Profil *
nějak jsem moc nepochopil jak se řazení písmen v abecedě projeví v porovnávání <>=, můžeš mi to prosím vysvětlit? :o)

A podle čeho jiného by se <> mělo chovat než podle řazení písmen v abecedě?

select 'hurvinek'<'chleba' collate 'utf8_czech_ci';
select 'hurvinek'<'chleba' collate 'utf8_unicode_ci';
Marek_k
Profil *
Jedno ne zrovna úplně profi řešení je holt při změně jazyka (třeba přes GET požadavek) nastavit automatiku při zakládání spojení, např.

if(in_array($_GET['language'], seznamvsechpovolenychjazyku()) && $_GET['language'] == 'czech') {
SET CHARACTER SET utf8_czech_ci;
SET NAMES 'utf-8';
SET COLLATION_CONNECTION='utf8_czech_ci';
}
else {
// Nějaká univerzální sada, třeba unicode_ci
}

Nebo nějak přes switch, když bude jazyků víc...
Jack Finger
Profil
Kajman_
aha, už mi docvaklo, díky :o)

Marek_k
to by šlo, taky mě napadlo.

a jak to řešíte vy? asi moc vícejazyčných webů nemáte že :o)
Look Smog
Profil *
Ten článek jsem psal, když jsem řešil právě problémy s češtinou a začal jsem se o to zajímat :)
Čeština je řazena správně v czech i unicode ;)
Kajman_
Profil *
Čeština je řazena správně v czech i unicode ;)

I to ch a h? ;-)
Look Smog
Profil *
Tak jsem to vyzkoušel a ch se správně řadí za h pouze v utf8_czech_ci ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0