

špatné kódování HTML stránky?
Dobrý den,
Dostal jsem na starosti administraci jedněch webových stránek a narazil na zajímavý problém. Předem ale pár informací:
-Web je scriptován v php.
-Formát textu .php souborů je UTF-8
-Kódování HTML je nastaveno na UTF-8 (předtím bylo nastaveno na latin2)
-Kódování databáze MySql a všech tabulek a sloupců je nastaveno na UTF-8
-V php se z nějakého zvláštního důvodu používalo přetypovávání na UTF-8 a nazpátek při transakcích v db (přes funkci iconv(...))
Problém je v tom, že když vytvořím nový řádek v databázi a napíši tam speciální české znaky, pak při výpisu ve webu jsou sice ve formátu UTF-8, ale stejně se zobrazují místo nich samé ??. Na druhou stranu když ve formu na webu přepíšu tyto informace na správné české znaky, tak se zase v databázi uloží jako otazníky.
Nesetkal se někdo s tímto problémem?
Neporadil by mi někdo?
Děkuji za odpověd!!
Oboum díky, funguje to, bylo tam nastaveno opět kódování do latin2. :)
Len doplním, že rozšírenie mysql je zastarané a od 7.0.0 nie je jeho použitie vôbec podporované. Namiesto neho by si mal použiť buď mysqli alebo PDO.
Pre nastavenie kódovania sa používa funkcia mysqli::set_charset (alebo v minulosti zastaraná mysql_set_charset). Pri použití PDO nastavíš charset ako ďalší parameter pripájacieho reťazca "charset=utf8" (od PHP 5.3.6, predtým len cez set names). Výhoda oproti set names je taká, že pri volaní mysqli::real_escape_string (resp. zastaranej mysql obdoby) sa interne použije správne kódovanie. To by ti ale v prípade, ak používaš výhradne parametre, nemalo vadiť.