[Ajax] pb de charset en POST

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2006, 01:17

Bonsoir,

J'ai un petit soucis de charset avec un script qui fonctionne en ajax pour envoyer et insérer des données en base.

La méthode get fonctionne très bien, tandis que la méthode post m'encode les accents et autre en utf-8 en dépit du header que je spécifie :

Code : Tout sélectionner

if(method == "GET") { if(data != 'null') url = url + "?" + data; xmlReq.open("GET", url, true); //ouverture asynchrone xmlReq.send(null); } if(method == "POST") { xmlReq.open("POST", url, true); //ouverture asynchrone xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1"); xmlReq.send(data); }
La méthode GET (sans header) fonctionne très bien, mais j'aurais aimé résoudre ce problème pour pouvoir faire du post également...

Sur la page qui envoi les donées, j'ai un meta iso-8859-1 :

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
idem sur celle qui reçoit et stock en base
header('Content-Type: text/html; charset=ISO-8859-1');
qu'est ce qui manque ? qu'est ce qui éventuellement n'irait pas ?

Merci d'avance

Mammouth du PHP | 983 Messages

18 mars 2006, 14:32

Pourquoi tu ne récupères pas les données provenant du javascript en faisant un utf8_decode()?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2006, 17:24

Yep, je viens d'essayer cela fonctionne :)

Mais dans la mesure ou je fait tout en iso, je pensais pouvoir ne pas m'encombrer d'utf8.

Si j'ai bien compris, ajax le converti automatiquement à cause du "urlencoded" qui est dans le setRequestHeader du post, et le fait d'y préciser le charset n'y change apparement rien..

bah tant pis, on va décoder.. merci de ta réponse en tout cas :)