Én a következőt tenném. Elindítanék egy szövegszerkesztőt - nam, nem MS Word-öt, hanem text editort -, teszem azt, mcedit Linuxon, notepad windows-on. Beírnám - ne adj Isten, bemásolnám innen a fórumról az alábbi stringet:
AddDefaultCharset utf-8
A végén nyomnék egy entert, majd menteném a file-t .htaccess névvel. Igen, a filenév első karaktere pont. Ezután fognám az ftp kliensemet, s felmásolnám ezt a file-t a document root alkönyvtárba, tehát oda, ahol az index.html is van. Utána kipróbálnám, mit csináltam, de lehet, hogy a böngésző cache-t törölném előbb. Fog menni? ;)
Értem. És egy .htaccess nevű file ftp általi felmásolását is tiltja a vallásod? Azért, mert nem tied a szerver, ugye az index.html file-t még felmásolhatod rá? Nem az a baj, hogy nem tudod, miről van szó, hanem az, hogy nem olvasol utána, eldöntöd, hogy neked ez nem megy, és még csak nem is kérdezel a részletek ügyében. Elkopik az ujjunk a billentyűzeten, mert segíteni akarunk, de nem hagyod. A .htaccess file éppen azért van, hogy egyes dolgokat a weblap tulajdonosa konfigurálhasson a szerveren, mivel nyilván root jogod nincs rá. Esetleg arra is gondolhatnál, hogy nem írunk hülyeséget.
Köszönöm, mostmár az összes PHP által generált oldal megfelelően néz ki, de a csak HTML kódot tartalmazó kezdőlap, annak ellenére iso-8859-2 kódolásúnak vallja magát és "csapja be " a böngészőt, hogy a <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> szerepel az elején. Ha átállítom a browsert utf8-ra, akkor príma, de magától iso-8859-2 kódolásra áll. Mit tehetek vele?
Jogos, a *-htm és *.php file-okat is újra el kellett mentenem UTF8 kódolással, mostmár hibátlan a megjelenítés, ha a browser-t UTF8-ra állítom, de magától nem áll oda.
Live HTTP-Header azt mondja, hogy az oldal kódolása iso-8859-2, pedig utf8 kódolással mentem.
Mit kellene tennem, hogy "megsejtse" a browser az utf8-at?
/A server az nem az enyém; webtárhely, ahol nem konfigurálhatok, de szerencsére enélkül is jól jelenik meg az adat mostmár/
Ezt a kimenetet ugye az a php kód állította elő, amelyik a böngészőben rosszul jelenik meg? A character_set_server miért latin1?
A statikus fájlok biztos UTF-8 és nem ISO-8859-2 kódolással vannak?
A HTTP headert is ellenőrizni kellene (a 1627-ben ajánlottam rá eszközt), mert képzeld el a következőt: van egy ISO-8859-2 fájl, amibe a php belerak UTF-8 karaktereket, és ezt elküldi a kliensnek ISO-8859-1 kódolással. Most képzeld magad a browser helyébe, és írd meg, te hogyan jelenítenéd meg ezt a fájlt.
na, akkor az mar jo. Az hogy kalapos es hullamos, kerdes, hogy nem-e a kliens-bol. Ha file-ba kiirod a db-be irando tartalmat, ott nem hullamos/kalapos?
Most a connection létrehozásalor küldök egy SET NAMES 'utf8'-at, ennek hatására annyi javulás történt, hogy már csak a hosszú ű (kalapos ű) és a hosszű ő (hullámos) nem jó.
A 1627-ben belinkeltem a charsetes MySQL dokumentációt, követni kellene az ott ajánlottakat. Találgatás helyett inkább ellenőrizd, hogy hol használsz más kódolást (pl. nézd meg a linkelt oldalon levő SHOW VARIABLES LIKE 'character_set%' kimenetét).
A html headerbe hiába írod bele, hogy ISOakármi vagy UTF8, attól még nem változik meg a fájlod tartalma. Olyan kódolással kell elmenteni a fájlt amilyent a fejlécben állítasz (a php, class, include és minden más fájlt aminek tartalma a böngészőbe kerül), továbbá a HTTP headerben közölt charset is találjon kell a többivel, mert ellenkező esetben a böngésző a sok ellentétes információ miatt véletlenszerűen választ egy kódolást.
Tekintve, hogy csak a MySql-ből származó string-ek rosszak én is arra gondolok, hogy nem a HTML-t kellene piszkálnom. Az adatbázisnál 'DEFAULT CHARACTERSET utf8' van beállítva, mire gondolsz a SET NAME ügyében?
"Köszi, nyilván charset eltérés van, csak tudnám hogy hol." Ezt távolról nem lehet megállapítani. Ellenőrizni kell mindenütt (pl. kliensoldalon Firefox+Live HTTP Headers plugin).
"tehát legyen szabványos:" Nem azért mert szabványos, vagy mert többségben van, hanem mert többnyelvűség esetén egy gonddal kevesebb. A listádon nincs rajta a http header, azt is ellenőrizted?
A html (php, stb) fájlok ugyanolyan kódolással vannak elmentve mint amit használsz? Gyanús, hogy most UTF8-at küldesz és a statikus tartalom még mindig jól látszik. Kódolásváltásnál ha nem mented újra a statikus tartalmat a helyes kódolással akkor rosszul fog látszani.
Gyakran látogasd a MySQL Documentation oldalt, ha elakadsz ( sokat próbáltad az ott leírtakat és mégsem megy ) akkor bátran konkrét kérdéseket tegyél fel a problémával kapcsolatban.