ugrás a tartalomhoz

AJAX karakterkódolás anomália

Anonymous · 2006. Már. 17. (P), 14.05
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!
 
1

header

sajt · 2006. Már. 17. (P), 14.25
Szia!

Esetleg a headert nezegesd, abban le van irva, hogy milyen kodolassal jonnek az adatok.
2

hm

Anonymous · 2006. Már. 17. (P), 14.50
Hat igen, azt neztem.
Igazabol az a bajom hogy nem tudom befolyasolni :-(
Hiaba adom meg mi legyen ugy tunik van valami bongeszo default aztan csak azt hajlando kikuldeni :-(((
3

iconv

sajt · 2006. Már. 17. (P), 14.58
Azt tudod nezni, hogy milyen kodolassal jon az adat, aztan attol fuggoen kell az iconv vagy nem.
6

mivel nezem meg programbol?

Anonymous · 2006. Már. 17. (P), 15.56
sajnos csak kulso eszkozokkel (firefox extension) tudom ellenorizni hogy milyen jon ... programbol hogy kell?
probalkoztam ezzel, de nem jott be... ugy nez ki a header iso8859-2 de ami atjon az utf8:

$charc = explode(",", $_SERVER['HTTP_ACCEPT_CHARSET']);
	if($charc[0]=="ISO-8859-2")
	{
		char_conv($_REQUEST, false);
	}
	else
	{
		char_conv($_REQUEST, true);
	}
8

bocs

Anonymous · 2006. Már. 17. (P), 16.42
bocs bejott, csak elirtam valamit...

de nem vagyok meggyozodve rola hogy ez a legjobb megoldas...
4

ezzel néha bezony gáz van :)

virág · 2006. Már. 17. (P), 15.17
Szia,

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. :))
7

iconv

Anonymous · 2006. Már. 17. (P), 16.03
Igen a char_conv fv-em pont ezt csinalja...
Elobb utobb sejtettem hogy en is belelepek a charset-ekkel szenvedok klubbjaba... biztam benne hogy inkabb utobbb
5

accept-charset

tiku I tikaszvince · 2006. Már. 17. (P), 15.29
Nem használtam még AJAX-ot, sőt még a JS-hez sem értek igazán, de gondolom normál HTML űrlap segítségével kéred be az adatokat.
Ha ez így van akkor a form elemnek van egy accept-charset tulajdonsága, azt állítsd be. Szerintem segíthet.

<form .... accept-charset="iso-8859-2">...
TikuVoltam
9

apache .htaccess

tapir · 2006. Már. 24. (P), 13.24
Nekem is ez volt a problémám, és nekem megoldotta hogy a .htaccess be beirtam hogy AddDefaultCharset ISO-8859-2.
10

apache

Anonymous · 2006. Már. 24. (P), 14.44
en a httpd.conf -ba