Autor | Zpráva | ||
---|---|---|---|
t.k. Profil * |
#1 · Zasláno: 23. 10. 2004, 17:25:25
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 |
#2 · Zasláno: 23. 10. 2004, 19:07:55
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 |
#3 · Zasláno: 25. 10. 2004, 01:37:53
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í. |
||
Časová prodleva: 9 dní
|
|||
Russell Profil * |
#4 · Zasláno: 3. 11. 2004, 10:21:51
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 |
#5 · Zasláno: 3. 11. 2004, 15:06:46
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é. |
||
Časová prodleva: 9 dní
|
|||
Tomik Profil |
#6 · Zasláno: 12. 11. 2004, 16:37:59
Já si taky myslím, že Apache nic defaultně nic neposílá.
|
||
Oswald Profil * |
#7 · Zasláno: 12. 11. 2004, 16:52:19
Je to directiva AddDefaultCharset.
|
||
DoubleThink Profil * |
#8 · Zasláno: 12. 11. 2004, 22:22:39
...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 |
||
Časová prodleva: 2 měsíce
|
|||
M.R. Profil * |
#9 · Zasláno: 2. 1. 2005, 17:47:49
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 * |
#10 · Zasláno: 3. 1. 2005, 08:15:54
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 |
#11 · Zasláno: 3. 1. 2005, 15:20:28
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.
|
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0