Üdv!
Adott egy weboldal, minden fájl UTF-8 kódolású. Localhost-on jó a megjelenítés, előző webtárhelyen szintén. Azonban most váltottam webtárhelyet, itt viszont a szerver azt közli a böngészővel, hogy ISO-8859-2 a kódolás, az eredmény pedig olvashatatlan szövegek. Nem szeretnék többszáz fájlt átkódolni egy szerintem bajos szabványhoz, a UTF-8-cal sose volt gondom, megkérdezném, hogy tudtok-e megoldást. Nyilván a szerverhez nem férek hozzá, a tech support egyelőre nem válaszolt, nem hinném, hogy csak miattam beállítanak még pár kihagyott dolgot a szerveren, helyi szinten lenne jó valami erőltetés.
Nyilván az index.php (vegyesen használok HTML, PHP és JavaScript fájlokat) fájlban lévő meta
részben tárolt charset=UTF-8 nem ér semmit, a böngészőben ISO-8859-2 a karakterkódolás.
Találtam olyanokat, hogy:
?php header('Content-Type:text/html; charset=UTF-8'); ?>
- de ennél egy hibaüzenet kerül az oldal első sorába: Warning: Cannot modify header information - headers already sent by (output started at /USER/lynx/teszt/index.php:3) in /USER/lynx/teszt/index.php on line 3. Változás nincs. Találtam egy ilyet is:
?php ini_set('default_charset', 'UTF-8'); ?>
- ez mintha ott se lenne.
A PHP megoldásokon kívül találtam .htaccess fájlba írandókat, ezeknek a variációit nem írnám le, sokat kipróbáltam, az egyetlen, ami működött:
FilesMatch "\.(htm|html|css|js|php)$">
ForceType 'charset=UTF-8'
/FilesMatch>
de ennél meg nem működnek a PHP scriptek, csak a HTML és a JavaScript, az így kapott kódolás viszont tényleg UTF-8. Értelem szerűen ha kiveszem a "php"-t a fájlból, akkor megint a rossz karakterkódolás, ha meg átnevezem az index.php-t index.html-re, akkor nem hajtódnak végre a PHP scriptek, és mivel csak a füleket kezeli a JavaScript, a szövegeket meg a HTML, lényegében üres oldalakat kapok, csak fülekkel, minden elemet PHP scriptek raknak a helyükre, és a "vendégkönyv" is részben PHP-re van bízva, tehát szerves része az oldalnak.
De mint mondtam nem a PHP-vel van a gond, hanem a karakterkódolással, azzal sincs tényleges gond, csak ez a szerver azonosítja rosszul. Egyébként a Dataglobe-ról van szó.
Minden fájl Bluefish Editorral készült, UTF-8 kódolással.
A többi lehetőség, amit találtam, mind a szerveroldali beállításokról szólt. Az itt található összes variációt próbáltam, de csak a fenti működött.
Valakinek esetleg van tapasztalata ilyesmivel?
Megjegyzem az itteni PHP és .htaccess kódhibák szándékosak, egyébként nem jelenik meg.
- 2332 megtekintés
Hozzászólások
Már majdnem feladtam, de több mint egy órányi újabb keresés után megtaláltam! Többször is láttam ezt a beírandó sort:
< ?php header("Content-type: text/html; charset=utf-8");?>, de csak most találtam meg egy oldalt, ahol azt írták, hogy a < html> tag elé kell írni. És ott működik is!
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy meg volt már, de azért kukkants rá erre:
http://www.w3.org/International/questions/qa-htaccess-charset
Üdv:
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni