Kódování

Zdravím všechny,

chtěl bych Vás požádat o radu. Nevím si rady s kódováním textu. Stránky mám napsané v PHP propojené s MySql, nemůžu se dostat k tomu, abych se mi správně zobrazoval text.

Prosím Vás o radu.

www.vilajosefina.cz

Děkuju
V deklaraci máš Windows-1250 a přitom používáš kódování ISO 8859-2 (ISO Latin2). Něco z toho je potřeba změnit.

V MySQL musí být první dotaz po otevření "SET NAMES", ve kterém databázi oznámíš, jaké kódování chceš používat.

BTW: S vypnutými obrázky nefunguje menu vlevo. Slyšel jsi už něco o rolloverech? Načítání stránky se tím rapidně urychlí.
Ahoj,

moc díky za radu, musím říct, že z toho nejsem úplně moudrý:

- v deklaraci mám:
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8";>
je možné, že když jsi se díval, tak tam byl windows-1250

- jak víš, že používám kódování ISO8859-2?
- jak to, že když mám deklarováno utf-8 (ty by mělo být schopné zobrazit celou českou abecedu), v textu se mi pak nezobrazují písmena s diakritikou .. :-((

Děkuju,

Jakub
Asi žiješ v omylu, momentálně tam máš toto: <meta http-equiv="Content-Type" content="text/html"; charset="windows-1250";> - nehledě na středník na konci, který tam nemá co pohledávat..., stejně jako chyba v částečně chybějícím type="text/javascript" o kousek níže. Dále: nezáleží jen na deklarované znakové sadě, záleží taky na kódování použitého editoru.
Pokud má někdo deklarovánu sadu Windows-1250 a má zmršena písmena žšť, má stránku v ISO Latin 2. Platí to i obráceně.

Který používáš editor? Pokud máš Windows, doporučuji PSPad. Umí všechna zmíněná kódování.
Omlouvám se, možná došlo k nedorozumnění, mluvme pouze o stránce:

www.vilajosefina.wz.cz

Používám editor AceHTML6 dle Vašich rad jsem našel možnost nastavení kódování, zvolil jsem UTF-8, uložil jsem to a nahrál na WZ.

Zajímavá věc:

1) na stránce http://www.vilajosefina.wz.cz/ se špatně zobrazují znaky včetně http://www.vilajosefina.wz.cz/menu.php
2) když zobrazím samotné http://www.vilajosefina.wz.cz/menu.php pak se vše zobrazí OK

Myslíte, že na zobrazování může mít vliv i data z MySql (v indexu se z databáze berou informace, menu.php žádné mysql neobsahuje ....?)
http://vilajosefina.wz.cz/menu.php je v kódování Windows-1250 a mně se zobrazí chybně. Správně až když se přepnu do Windows-1250.

Na http://vilajosefina.wz.cz/ však máš deklarováno UTF-8, takže prohlížeč očekává UTF-8 a místo toho mu posíláš data částečně ve Windows-1250 a částečně v ISO 8859-2. Tedy totální zmatek.

Musíš vědět, v jakém kódování jsi uložil data do MySQL a při čtení to musíš dodržet. Nejlépe by bylo zvolit si jednu znakovou sadu (nejlépe asi UTF-8) a do ní překódovat všechny texty včetně textů do databáze.

Databázi musíš také sdělit použité kódování prvním dotazem "SET NAMES utf-8;" - tedy pokud se rozhodneš pro UTF-8.
děkuju za další příspěvek. Rozhodl jsem se začít od nejjednodužšího.


Vytvořil jsem http://www.vilajosefina.wz.cz/smazat2.php:

- deklaroval jsem UTF-8 v kodu stránky
- kodování editoru jsem nastavil na UTF-8

Přesto mi to stále zobrazuje znaky špatně.
Platí jedno zásadní pravidlo. Na začátku si zvol kódování a toho se po celou dobu drž.
Pokud zvolíš utf-8, tak vše bude v utf-8. To znamená, že editor musí umět editovat a ukládat v utf-8, v deklaraci HTML musí být uvedeno utf-8, databáze musí být utf8 včetně uvedení SET NAMES utf8.
Pokud něco z toho porušíš, byť jen jedna nepatrná stránka nebo jen znak, tak se to celé rozsype.

A jak koukám tak se tak stalo. Tvé stránky porušuji pravidla kódování a není se pak čemu divit, proč je to takové jaké je.

A jedna věc. Pouhá změna deklarace v HTML neznamená, že se to uloží v daném kódování. Deklarace musí odpovídat takovému kódování, v jakém se text edituje.
Nemáš tam ani jedno z písmen žšť, takže nerozeznám, jestli je to ve Windows-1250 nebo v ISO Latin 2. UTF-8 to rozhodně není.

Jako testovací řetězec se mi osvědčil "příliš žluťoučký kůň úpěl ďábelské ódy".
.. tak pod Vaším vedením jsem přišel na to, že byl uložený text ve špatném kódování. Vyzkoušel jsem PSPad a v něm jsem znovu uložil soubory v UTF kodování a OK :-) Ted se mi již text, který je přímo ve stránce zobrazuje správně.

Teď bych Vás chtěl požádat, jestli byste mě navedli, jak udělat, aby se mi i data z MySql zobrazovali správně. Na mém PC doma jsem udělal:

- vytvořil tabulku a každý řádka je s kodováním (porovnání) utf8_czech_ci

text příliš žluťoučký kůň úpěl ďábelské ódy z databáze se mi zobrazil jako:

p��li� �lu�ou�k� k�� �p�l ��belsk� �dy
Po KAŽDÉM otevření databáze musíš ještě před prvním SELECTem zadat dotaz

SET NAMES utf8;

a teprve potom můžeš posílat běžné dotazy. Zřejmě budeš muset texty do databáze nahrát znovu.
aku verziu php podporuje webz.?
5?6?7 Dakujem
djscaty: Verze se liší mezi servery (a doménami), více viz vlastní phpinfo(); Zkus si k php ale ještě alespoň něco přečíst -- očividně jsi sám dost mimo, když se ptáš po neexistujících verzích 6 a 7.
Ahoj,

moc díky za rady, nakonec se mi to podařilo díky Vám zprovoznit/orpavit :-)