PHP/MySQL karakterkódolás helyes beállítása
Hali!
Lenne egy problémám, remélem vki tud segíteni!!
Az a helyzet, hogy az SQL-ban eltárolt adatok
magyar ékezetes részei helyett valami hihetetlen
karaktersorozatokat produkál. A form-om <select>-jét
töltöm fel a táblából. PhpMyadmin alatt tökéletesek az
ékezetek, de bármilyen kódolást állítok be (latin2) ugyanazt
az eredményt kapom az oldalban, pedig header();-rel és <META>-val
is próbáltam beállítani a weblap kódolását. Az utf-8 pedig
mind a <meta> és mind a header(); esetén tiszta fehér képernyőt
eredményez. Na erre mi lehet a megoldás???
■ Lenne egy problémám, remélem vki tud segíteni!!
Az a helyzet, hogy az SQL-ban eltárolt adatok
magyar ékezetes részei helyett valami hihetetlen
karaktersorozatokat produkál. A form-om <select>-jét
töltöm fel a táblából. PhpMyadmin alatt tökéletesek az
ékezetek, de bármilyen kódolást állítok be (latin2) ugyanazt
az eredményt kapom az oldalban, pedig header();-rel és <META>-val
is próbáltam beállítani a weblap kódolását. Az utf-8 pedig
mind a <meta> és mind a header(); esetén tiszta fehér képernyőt
eredményez. Na erre mi lehet a megoldás???
MySQL karakterkészlet hiba
Tisztelettel:
BonD
charset, collation helyes?
A lényeg, hogy mind a lapon, mint a táblában, ill. a mezőben megfelelő karakterkódolásod, ill. collation-öd legyen (ugyanis a tárolásban a "legalsó szint" beállítása a döntő).
Például ha UTF-8 karakterkódolással szeretnéd a lapod, akkor a
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
legyen, valamint az adatbázisban a szükséges táblák és mezők encoding-ja UTF-8, collation-je pedig például utf8_general_ci legyen.
Most az UTF-8-as példát ragadtam ki, de a helyzet ugyanez Latin2-nél is (charset=iso-8859-2).
Hasznos linkek:
Joel Spolsky az unicode-ról
MySQL kézikönyv: charset, collation
Remélem, nem szúrtam el semmit - ha igen, légyszíves javítsatok ki.
Meg ha már itt tartok, rögtön én is kérdeznék:
charset utf-8, collation utf8_general_ci; a nagy Ő és Ű betűk helyén '??' jelenik meg a lapon. Próbáltam utf8_bin collation-nel is, az sem oldotta meg. Hol rontottam el?
header
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
<Nincs cím>
ezt nem hagytad ki?
Kösz, de sajnos még nem jó
LiveHTTPHeaders-szel figyelem, mi történik, és a content-type headerben utf-8 szerepel.
Szerepel még egy "Transfer-Encoding: chunked" sor is, de ha jól értem, ez így jó.
Gyanakodtam még arra is, hogy - ingyenes tárhely lévén - a frameset a gond, de a lapot a keretekből "kiemelve" sem jók a nagy ékezetes karakterek.
Ha valakinek van ideje, hálás lennék a segítségéért! A honlapot (még) nem szeretném hirdetni, amíg rendesen össze nem rakom, de ha valaki tud erre energiát, időt szánni, annak elküldeném a címet.
Megnézem
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Megnéztem
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Köszönöm!
Jelenleg annyi tehát biztos, hogy a kliens oldal rendben van.
A szerver charset UTF-8 Unicode (utf8), a collation pedig mind a szervernél, mind a tábláknál és azok mezőinél utf8_general_ci.
Local devkörnyezetben minden szép és jó, az éles környezetből localba átmentett adatbázison azonban ugyanúgy jelentkeznek a hibák, mint a lapon, vagyis az Á, Í, és az Ő karakterek nem (azaz hibásan) jelennek meg. A dumpolt sql állományban nem találok semmit, ami a hibára utalna. Lehet, hogy a bevitelnél van valami gond?
Ha jól emlékszem, a MySQL manualban olvastam, hogy egyes esetekben az adatbázishoz való kapcsolódáskor explicit meg kell határozni a charsetet és collation-t, de úgy emlékszem, ezt csak akkor, ha eltérő kódolású query van. A lényeg, hogy semmi ilyesmit nem határozok meg kapcsolódáskor. Kéne? :)
Igazság szerint elfogytak az ötleteim, szóval ha bárkinek van javaslata, azt hálásan fogadnám.
<Nincs cím>
http://textpattern.com/deanload/
látod nekem itt jó, bár nem free szerver: http://fw4ever.toxin.hu/