AJAX karakterkódolás anomália
Sziasztok!
A következő problémával találkoztam egy mostani munkám során.
AJAX technológiát használok az oldalon és a "két fő" böngésző másként
viselkedik de nem tudom miért. :-(
Firefoxban: a httprequestel elküldött adatok mindig utf-8-al érkeznek meg
IEben: az elküldött adatok ISO-8859-2-ben érekeznek meg
Amit próbáltam eddig:
- google (mindenki csak sejt valamit de nincs megoldás leirva)
- weblabor (levlistan volt hasonlo tema, de megoldas nuku)
Mivel mindenhol ISO-8859-2-ot hasznalok ezert amikor firefoxal fejlesztettem az oldalt akkor iconv-al atraktam az utf-8-at iso-8859-2-re. Igy a firefoxal jol ment a dolog, de ekkor az IE-vel az iconv elszall:
iconv(): Detected illegal character in input string
A masik dolog amivel meg probalkoztam, hogy a httprequest-nek adok header-t:
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-2");
DE ez sem segitett, mintha valahogy nem venné figyelembe sem az IE sem a firefox ezt a beallitast
Ha van valakinek ide tartozo megoldasa, ne tartsa magaba :-)
Koszi!
■ A következő problémával találkoztam egy mostani munkám során.
AJAX technológiát használok az oldalon és a "két fő" böngésző másként
viselkedik de nem tudom miért. :-(
Firefoxban: a httprequestel elküldött adatok mindig utf-8-al érkeznek meg
IEben: az elküldött adatok ISO-8859-2-ben érekeznek meg
Amit próbáltam eddig:
- google (mindenki csak sejt valamit de nincs megoldás leirva)
- weblabor (levlistan volt hasonlo tema, de megoldas nuku)
Mivel mindenhol ISO-8859-2-ot hasznalok ezert amikor firefoxal fejlesztettem az oldalt akkor iconv-al atraktam az utf-8-at iso-8859-2-re. Igy a firefoxal jol ment a dolog, de ekkor az IE-vel az iconv elszall:
iconv(): Detected illegal character in input string
A masik dolog amivel meg probalkoztam, hogy a httprequest-nek adok header-t:
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-2");
DE ez sem segitett, mintha valahogy nem venné figyelembe sem az IE sem a firefox ezt a beallitast
Ha van valakinek ide tartozo megoldasa, ne tartsa magaba :-)
Koszi!
header
Esetleg a headert nezegesd, abban le van irva, hogy milyen kodolassal jonnek az adatok.
hm
Igazabol az a bajom hogy nem tudom befolyasolni :-(
Hiaba adom meg mi legyen ugy tunik van valami bongeszo default aztan csak azt hajlando kikuldeni :-(((
iconv
mivel nezem meg programbol?
probalkoztam ezzel, de nem jott be... ugy nez ki a header iso8859-2 de ami atjon az utf8:
bocs
de nem vagyok meggyozodve rola hogy ez a legjobb megoldas...
ezzel néha bezony gáz van :)
csak csupa kellemetlen dolgot lehet mondani erről. :)) Ezzel mindig gond van, és akkor itt még adatbázisról szó sincs. Nekem legutóbb ez segített:
$xcontent = iconv("ISO-8859-2", "UTF-8", $xcontent );
és amikor visszaadod a tartalmat, akkor még + addslashes($xcontent). De ha pl. MSSQL is bekerül a "körbe", akkor még izgibb dolgok sülhetnek ki. :))
iconv
Elobb utobb sejtettem hogy en is belelepek a charset-ekkel szenvedok klubbjaba... biztam benne hogy inkabb utobbb
accept-charset
Ha ez így van akkor a form elemnek van egy accept-charset tulajdonsága, azt állítsd be. Szerintem segíthet.
apache .htaccess
apache