enroc Posté 20 Juin 2005 Posté 20 Juin 2005 Bonjour, voilà, j'utilise le fameux XMLHttpRequest, et c'est super ! Mais ... j'ai des problèmes d'encodage de caractère Voici les 2 cas de figures que j'ai : en utilisant XMLHttpRequest pour poster le formulaire * envoi le contenu des champs en utf8 * récupère (responseText) de l'utf8 (je crois) alors que le contenu est de l'iso-8859 (et le dit dans l'entête) en utilisant le formulaire sans javascript: tout ce passe bien en iso-8859-1 Donc : 1. Il faut que je détecte si le formulaire est posté via javascript ou non, pour faire un utf8_decode(), ce que j'aimerai éviter. 2. je ne sais pas comment faire pour afficher correctement le responseText. d'où : 1. Puis-je poster en javascript en iso-8859-1 ? Comment ? 2. Pourquoi ai-je des problèmes d'affichage en récupérant responseText, qui est de l'iso-8859, en l'affichant ? Voilà, si vous avez compris et que vous avez des idées ... Voici le javascript utilisé : function saveFile(){ request = new XMLHttpRequest(); request.open("POST", location.pathname); request.onload = printResult; /* Envoi de l'utf8 ? */ request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var _fileContent = (document.getElementById('fileContent').value); var _mtime = document.getElementById('mtime').value; var _action = "editFile"; request.send("ajax=true&fileContent="+_fileContent+"&mtime="+_mtime+"&action="+_action);}function printResult(){ if(document.getElementById("log")){ document.getElementById("log").parentNode.removeChild(document.getElementById("log").parentNode); } var _result = document.createElement("div"); /* reçoit de l'utf8 ? */ _result.innerHTML = request.responseText; document.body.appendChild(_result); //document.body.innerHTML = request.responseText;}
enroc Posté 24 Juin 2005 Auteur Posté 24 Juin 2005 Hop, la réponse était dans la question (qui était : pourquoi le fichier qui récupère le formulaire (action="toto.php") ne récupère pas tout simplement de l'iso-8859-1 quand le formulaire est posté en javascript) request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); <{POST_SNAPBACK}> En effet c'est posté en x-www-form-urlencoded, il faut donc décoder ! Faut bien tout lire avant de poser une question :-D
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant