ugrás a tartalomhoz

Szolgáltatótól függő magyar ékezetes karakterekkel kapcsolatos megjelenítési probléma

szanitter · 2006. Május. 4. (Cs), 12.22
Van egy olyan gondom, hogy csináltam egy weblapot Dreamweaverben és feltettem az ügyfelem Externetes tárhelyére, de kalapos ő és ű jelent meg annak ellenére, hogy a jóöreg "charset=iso-8859-2"-t haszáltam a meta tagben. Korábbi weblapjaimnál saját szerveremen sohasem volt gondom vele. Elkezdtem próbálgatni az UTF-t és IE-ben meg is oldódott, de a FireFoxban "zagyvaság" jelent meg az ékezetek helyett.

Erre mást próbáltam, csináltam egy pucér php doksit (de próbáltam html-lel is) iso-8859-2 kódolással és feltettem arra a szerverre, ahol ált. a saját weblapjaimat tárolom (http://www.coaxial.hu/pages/proba/karakter_teszt.php) és ott minden frankó volt és ugyanezt a fájlt feltettem az ügyfelem Externet-es tárhelyére (http://www.regre.hu/pages/proba/karakter_teszt.php) és ott meg kalaposan jelenik meg az ő és ű.

Létezik, hogy a tárhelyet szolgáltató szerver így bekavarjon? És ha igen, akkor van-e valami bombabiztos kód php illetve html fájl esetén, amivel kierőszakolom tőle, hogy mégis rendesen jelenítse meg a karaktereket?

Egyébként az említett karakter_teszt.php doksi header része imígyen néz ki:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>
 
1

header vs meta

Anonymous · 2006. Május. 4. (Cs), 13.13
Meg a doctype elott probalj meg egy content-type header-t kuldeni, valahogy igy:
header("Content-type: text/html; Charset=\"iso-8859-2\"");
2

AddDefaultCharset bekavarhat

Anonymous · 2006. Május. 5. (P), 09.18
Szia!
Hogy a kérdésedre is válaszoljak, igen, bekavarhat a szerver is. Pl. apache esetén be lehet állítani az AddDefaultCharset direktívát valamilyen karakterkészletre, aminek az az eredménye, hogy a webszerver minden válasz előtt kiad egy, a fentihez hasonló "Content-type ..." fejécet, amit a böngészők általában "erősebbnek" tartanak, mint a html dokumentum fejlécében szereplő "charset" deklarációt. Emiatt megpróbálják a webszerver által mondott karakterkészletszerint megjeleníteni az oldalt.
Megoldás lehet ilyen esetekben a fenti fejléc elküldése, bár jobb lenne az AddDefaultCharset-et kiszedni az apache konfigurációjából.
3

?

toxin · 2006. Május. 5. (P), 09.25
vagy hozzáadni a .htaccess-ben

<ifModule mod_php4.c>
 php_value default_charset  "iso-8859-2"
</ifModule>