jQuery ajax charset

 ( plt | 2017. november 28., kedd - 14:19 )

Szeretnék jQuery-vel egy ISO-8859-2 kódolású oldalból egy ISO-8859-2 kódolású ajax kérést küldeni a webszerver felé, de a kérelem fejléce mindig UTF-8 lesz, hiába adom meg a contentType option-t is.
Hogyan tudok megadott kódolású kérést küldeni a webszerver felé?
Mivel csak a POST adatokban lévő ékezeteket kellene helyesen elkódolnom, más megoldás is érdekel, csak az ő és ű működjön.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.


$.ajax({
type: "POST",
url: "ajax.php",
contentType: "text/html; charset=iso-8859-2",
data: "valami",
success: function(response) {

}
});

Vagy a másik oldalt használj iconv-ot.

pch
--
SB-soft online ügyviteli rendszer
--

Ezt próbáltam, ez nem működik sajna. A text/html-ként elküldött post adat meg sem érkezik a PHP POST tömbjébe, de ha contentType application/x-www-form-urlencoded, akkor legalább elérhetem az elküldött adatokat.
Valami olyasmi lehet a háttérben, hogy hiába iso-8859-2 minden - fájlok, webszerver, header - a firefox mégis utf8-ban futtatja a javascriptet.

A szerverkornyezetre nincs ráhatásom, és nincs benne iconv.

> a text/html-ként elküldött post adat meg sem érkezik a PHP POST tömbjébe

Ez így van, cserébe kiolvashatod innen: file_get_contents("php://input");

És gondolod, hogy karakterkódolás szempontjából számít, hogy a POST-ból olvasom-e ki, vagy innen?

JSON.stringify + json_decode esetleg (kiegészítésként) iconv függvény a fogadó "php" oldalon?

A világ IQ-ja állandó, csak egyre többen vagyunk rá....

Jelenleg azt a megoldást használom, hogy szerver oldalon escape fügvénnyel elkódolom az adatokat ékezetmentesre, a php rawurldecode függvényével visszakódolom, az "ő" és "ű" kódokat pedig manuálisan helyettesítem a megfelelőre. Így egészen működőnek tűnik, de ... hát messze nem szép és teljes megoldás.

> Mivel csak a POST adatokban lévő ékezeteket kellene helyesen elkódolnom, más megoldás is érdekel, csak az ő és ű működjön.

Felejtsd el az ISO-8859-2-t, állj át UTF-8-ra mindenütt.

Sajnos a környezet kötött.