Autor Zpráva
clousseau
Profil
Ahoj,
už si nevím rady, obracím se proto s prosbou o pomoc. Zlobí mě zobrazování českých znaků - tedy vlastně i ukládání.

MySQL databáze má kódování nastaveno na utf8_general_ci (zkoušeno i utf8_czech_ci), PHP a TPL soubory jsou uloženy v UTF-8 bez BOM, jazyk stránky nastaven na <meta http-equiv="Content-Type" content="text/html; charset=utf-8">, ale stejně po uložení dat se mi uloží text jako např. (PřívÄ›s velkĂ˝, škoda, Olejomalba na plátnÄ› - dĹ™evÄ›nĂ˝ rám 470x370mm...). Když poté zobrazím text na stránce, tak v podstatě až na pár znaků je čeština OK, ale např. ň se nezobrazí správně ale jako �?.

Už fakt netuším, kde je pes zakopaný, poradíte prosím? Děkuji moc
peta
Profil
Php header musis mit nastavene take na utf-8 a take mysql SET NAMES. Jakou mas verzi php a sql? Jake hlavicky posila server prohlizeci? (Bys mohl dat link na stranku)
Joker
Profil
clousseau:
Ještě po připojení k databázi nastavte komunikační kódování.
Viz MySQL a čeština.

Jsou tři podstatné věci:
1. Kódování souboru se skriptem (nebo souborů, pokud jich je víc)
2. V jakém kódování o sobě stránka prohlásí, že je (hlavička content-type, případně meta charset)
3. Komunikační kódování s databází

Všechno se týká samozřejmě jak vypisování, tak ukládání dat. Navíc jestli už nějaká data jsou v databázi uložená špatně, budou se muset opravit.
clousseau
Profil
Děkuji za nakopnutí,
zatím hodím link, kde je vidět špatné zobrazování: http://www.blesarna.cz/item.php?id=180

Hostuji u pipni, takže tam budou docela aktuální verze PHP i MySQL, ale jaké netuším, pokusím se zjistit
peta
Profil
http://manual.pipni.cz/read.php?id=73
http://manual.pipni.cz/read.php?id=19
verze PHP i MySQL - phpmyadmin by to mohl vypisovat. Jinak je to prikaz phpinfo().
clousseau
Profil
Joker:
Díky moc, toto zabralo: mysql_set_charset("utf8"); (měl jsem tam původně mysql_query("SET NAMES 'UTF-8'");)
Tedy až na to, že teď musím všechny data přepsat.:-D

peta, taky děkuju
peta
Profil
To zalezi na tom, jakym zpusobem jsi to tam ulozil. Stejnym by to melo jit vybrat z db ve spravnem kodovani a pak tam nasoukat zpet v utf. Ale mozna rychlejsi to opravit rucne, pokud to je 100-200 zaznamu, nez zkoumat tuto moznost a napsat to spravne.
Joker
Profil
clousseau:
To SET NAMES bylo správně, jen to není 'UTF-8', ale 'utf8'.
clousseau
Profil
Díky, nebylo toho tolik, tak jsem to udělal růčo, resp, copy paste

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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