[AJAX] [XMLHttpRequest] [Encoding]
Résolu
Acasanva
-
Acasanva Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Acasanva Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Je rencontre un petit souci d'encoding avec l'objet XMLHttpRequest, et ce même sans utiliser PHP.
J'ai spécifié toutes mes pages selon l'encoding utf-8.
J'ai une page index.html qui contient plusieurs div dont une qui sert a contenir un contenu. je veux changer le contenu de cette div au clique sur un bouton.
Voici le code le index.html
afficher.js =
Je charge donc la div id="contenu" par texte.html que voici:
Bilan des courses: le é ne ressort pas. (j'ai le gros losange noir avec ? blanc au milieu). J'ai beau chercher partout sur le net, il est écrit qu'il faut être sur le même encoding de bout en bout (ce qui est le cas) et que XMLHttpRequest encode en utf-8 (ce que j'ai choisi).
Je vois donc pas ce que je fais de faux...
Merci de votre œil avisé.
Je rencontre un petit souci d'encoding avec l'objet XMLHttpRequest, et ce même sans utiliser PHP.
J'ai spécifié toutes mes pages selon l'encoding utf-8.
J'ai une page index.html qui contient plusieurs div dont une qui sert a contenir un contenu. je veux changer le contenu de cette div au clique sur un bouton.
Voici le code le index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Page de test</title> <link rel="stylesheet" type="text/css" href="style_div.css"> <script src='./scripts/alimenter.js' language='javascript'></script> </head> <body> <div id="bandeau">Ceci est le bandeau</div> <div id="fond"> <div id="menu"> Ceci est le menu <br/> <img src='./img/change_state.gif' onclick='alimenterContenu(1)'> </div> <div id="contenu"> Ceci est le contenu </div> </div> <div id="piedpage">Ceci est le pied de page</div> </body> </html>
afficher.js =
// JavaScript Document function alimenterContenu(i){ var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("GET", "text1.html", true); xhr_object.send(null); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { //alert(xhr_object.responseText); setContentDiv("contenu", xhr_object.responseText + "<br />"); } } } function clearDiv(id) { document.getElementById(id).innerHTML = ""; } function setContentDiv(id, txt) { clearDiv(id); document.getElementById(id).innerHTML += txt+"<br />"; }
Je charge donc la div id="contenu" par texte.html que voici:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Page de test</title> <link rel="stylesheet" type="text/css" href="style_div.css"> </head> <body> Ceci est une page externe avec du contenu <b>formaté</b>. </body> </html>
Bilan des courses: le é ne ressort pas. (j'ai le gros losange noir avec ? blanc au milieu). J'ai beau chercher partout sur le net, il est écrit qu'il faut être sur le même encoding de bout en bout (ce qui est le cas) et que XMLHttpRequest encode en utf-8 (ce que j'ai choisi).
Je vois donc pas ce que je fais de faux...
Merci de votre œil avisé.
A voir également:
- [AJAX] [XMLHttpRequest] [Encoding]
- Fpdf encoding ✓ - Forum PHP
- Yggtorrent erreur ajax ✓ - Forum PHP
- Problème ajax ✓ - Forum Webmastering
- Erreur ajax c est quoi ✓ - Forum PHP
- Easyphp ajax ✓ - Forum PHP
3 réponses
[RESOLU]
C'est toujours par les petits détails qu'on se fait em***er .
Le fichier texte.html etait enregistré en ASCII ce qui biensur foutait tout par terre.
je l'ai enregistré en UTF-8 et placer le charset en UTF-8 dans texte.html et index.html.
Et ca marche ! :-)
C'est toujours par les petits détails qu'on se fait em***er .
Le fichier texte.html etait enregistré en ASCII ce qui biensur foutait tout par terre.
je l'ai enregistré en UTF-8 et placer le charset en UTF-8 dans texte.html et index.html.
Et ca marche ! :-)
Bonjour,
Après avoir récupéré la réponse à ton appel AJAX, essaie de faire
alert(xhr_object.getResponseHeader());
On pourra au moins voir quel est l'encodage que le serveur renvoie.
Xavier
Après avoir récupéré la réponse à ton appel AJAX, essaie de faire
alert(xhr_object.getResponseHeader());
On pourra au moins voir quel est l'encodage que le serveur renvoie.
Xavier