Autor Zpráva
t.k.
Profil *
Co mám udělat aby mi PHP správně zobrazovalo české znaky /š, ž/?
V hlavičce mám :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-Language" content="cs">
VitaZ
Profil
PHP ti žádné znaky nezobrazuje. To jen generuje (vytváří) výsledný HTML kód. Chyba bývá nejčastěji v tom, že v hlavičce máš např. dekladovánu znakovou sadu iso-8859-2 a stránku máš uloženu ve win-1250. Popř. máš v tom win-1250 uložena třeba data v Mysql databázi. Nebo nějaký PHP script, který do stránky načítáš.
Jednoduše převést a uložit stránku v kódování iso-8859-2 i mnoha jiných umí např. PSPad.
Yuhů
Profil
Pokud ti blbnou znaky ž, š a ť, tak je problém v tom, že se plete kódování iso-8859-2 s kódováním windows-1250. Do hlavičky stránky zapisuješ sice správný meta tag pro kódování iso, do výsledku se ti ale z nějakého důvodu dostávají texty kódované ve windows-1250.

Ten druhý meta tag content-language s tím nesouvisí.
Russell
Profil *
Zalezi od prehliadaca:
- IE: berie posledne kodovanie zo stranky <meta tag>
- Mozilla: to berie zo serveru, respective http headeru a v Apache je default ISO-8859-1

Skus vlozit http header priamo cez php asi takto:
<?php header('Content-Type: text/html; charset=ISO-8859-2'); ?>
a samozrejme nech to sedi aj s meta tagom.

to lieci vsetky neduhy, samozrejme predpokladam ze pises subor v spravnom charsete. Mimochodom FP si precita <meta charset> a automaticky edituje znaky v prislusnej spravnej znakovej sade.

- Russell
Yuhů
Profil
respective http headeru a v Apache je default ISO-8859-1

Já mám za to, že Apache defaultně žádnou znakovou sadu neposílá. Je na to nějaká directiva v httpd.conf, která má opravdu přednastavenou hodnotu iso-8859-2, ale je to defaultně zakomentované.
Tomik
Profil
Já si taky myslím, že Apache nic defaultně nic neposílá.
Oswald
Profil *
Je to directiva AddDefaultCharset.
DoubleThink
Profil *
...která má opravdu přednastavenou hodnotu iso-8859-2, ale je to defaultně zakomentované.

Divil by ses, ale není (alespoň ve dvojkových verzích). Je tam defaultně hlavička Latin1
M.R.
Profil *
Mám úplně ten samý problém jako t.k. Data mám korektně uložená v MySQL databázi. Kódovací stránka v databázi je cs-iso-8859-2. Zatím jsem nepřišel na to, co s tím a ani po přečtení všech příspěvků na tomto fóru nejsem moudřejší. Problém je se znaky š, ž, ť a Š, Ž a Ť (možná ještě nějaké další). Dokud jsem měl texty zapsány přímo v kódu php, tak s tím žádné problémy nebyly, ale jakmile jsem skripty přepsal a texty beru z DB, tak problémy nastaly. Nevím si s tím rady. To co jsem schopen ovlivnit (php skript, data v MySQL) zatím k úspěchu nevede. Mimochodem svůj web mám hostovaný a nejsem si jistý, zda direktivy v httpd.conf. Doma na PC při ladění skriptů v režimu localhost problémy nemám.
Pokud budete pro mne mít nějakou radu, napište mi prosím na miroslav@rehor.info
Děkuji
M.R.
Profil *
Sám si odpovídám :-) Můj problém byl v tom, že v meta tagu jsem měl cs-iso-8859-2. Když jsem tam dal pouze iso-8859-2, tak zobrazování češtiny funguje korektně.
t.k. má ale ten tag uveden správně, tak v jeho případě nevím ???
Yuhů
Profil
no, vzhledem k tomu, že se t.k. po položení dotazu už neozval, tak těžko říci, co měl za chybu. Kódování cs-iso-8859-2 opravdu neexistuje. Že dvojkový Apache posílá defaultně iso-8859-1, je pěkná pruda.
Toto téma je uzamčeno. Odpověď nelze zaslat.