ugrás a tartalomhoz

PHP/MySQL karakterkódolás helyes beállítása

chinomoreno · 2005. Ápr. 19. (K), 18.42
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???
 
1

MySQL karakterkészlet hiba

Anonymous · 2005. Aug. 1. (H), 23.52
Detto ugyanez a helyzet nálam is, persze választ sehol nem kapni erre, pedig már kérdeztem jó pár helyen. Tudom, hogy régi téma! :D

Tisztelettel:
BonD
2

charset, collation helyes?

Dualon · 2005. Aug. 2. (K), 00.48
A karakterek korrekt megjelenésében elnagyolva három fő tényező játszik szerepet: a felvitel, a tárolás, és a megjelenítés. E kettő közül az első és utolsó ugyanattól függ, a lap charset-jétől, a középső pedig az adatbázis beállításaitól. Az adatbázis default karakterkódolása négy szinten állítható, ezek a szerver, az adatbázis, a tábla, ill. a mező.
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?
3

header

kgyt · 2005. Aug. 2. (K), 02.24
Nézd meg milyen headerrrel jön az oldal a böngészőnek!


--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
4

<Nincs cím>

toxin · 2005. Aug. 2. (K), 07.42
header("Content-type: text/html; charset=utf-8");


ezt nem hagytad ki?
5

Kösz, de sajnos még nem jó

Dualon · 2005. Aug. 5. (P), 01.23
Köszönöm mindkettőtöknek a választ, de erre én is gondoltam, és sajnos nem oldódott meg a problémám.
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.
6

Megnézem

kgyt · 2005. Aug. 5. (P), 09.40
Címem ismert.

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
8

Megnéztem

kgyt · 2005. Aug. 7. (V), 12.55
Nem kliens oldalon van a gáz...

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
9

Köszönöm!

Dualon · 2005. Aug. 10. (Sze), 00.18
Szeretném ezúton is megköszönni kgyt-nek, hogy időt és energiát szánt a dologra. (Nem szeretnék visszaélni segítségnyújtásával, úgyhogy itt (is) felteszem kérdésem.)
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.
7

<Nincs cím>

toxin · 2005. Aug. 5. (P), 09.45
a txp motor végig utf8 kódolást használ, nézd meg hogy jó-e abban ?

http://textpattern.com/deanload/

látod nekem itt jó, bár nem free szerver: http://fw4ever.toxin.hu/