Bonjour,
Je travail en ajax et je me demander comment décoder de l'utf8 en javascipt ?
J'ai bien essayer de chercher mais j'ai pas trouver de méthodes, ai-je mal cherché ?
Version imprimable
Bonjour,
Je travail en ajax et je me demander comment décoder de l'utf8 en javascipt ?
J'ai bien essayer de chercher mais j'ai pas trouver de méthodes, ai-je mal cherché ?
utf8 = encodage xml ?
Si oui :
Code:
1
2
3 var div=document.createElement("div") div.innerHTML=XML var text = div.firstChild.data
Excuse moi mais j'ai pas compris ton code là:
Je cré une balise div dans ma page ?Citation:
var div=document.createElement("div")
J'y place mon XML ?Citation:
div.innerHTML=XML
Je récupère le contenu de ma premiere balise dans mon XML ?Citation:
var text = div.firstChild.data
Bon je suis peut etre à coté de la plaque là alors, tu veux bien m'expliquer ?
En faite moi j'encode tu text en utf8, transmis en XML via l'objet XMLHTTPRequest et là j'aimerai décoder l'UTF8
lol, et bien tu as tout compris ;)Citation:
Envoyé par maximenet
Le premier noed XML étant le texte XML ;) (HTMLTextNode)
data étant le texte contenu dans le XML mais en désencodé ;)
ex pour le contenu de XML :
Code:var XML="&"
en faite moi j'ai un probleme là avec le caractère oe ataché comme dans boeuf, coeur etc...
et il veux pas me l'afficher alors que dans ma base il est bien écrit
Je suis dans la même galère... J'ai besoin de decoder de l'utf8 en javascript.
J'ai pas trop capter la solution de Fremy... J'ai cherché partout sur les fofos, et rien de fonctionne, ca m'embête un peu (pour rester poli... :)).
Je suis preneur de toutes idées !
si tu travailles avac ajax, ça veut dire que tu peux le faire coté serveur en php par exemple
Code:utf8_encode(tachaine)
Non parce que mon soucis c'est que dans mon XMLHTTPRequest, c'est une page HTML (avec formulaire et données), et elle arrivera de toute façon toujours en UTF8, enfin c'est ce que j'ai compris.
J'ai essayer plein de solution par la définition du header et compagnie dans ma page principale, mais rien ne fonctionne. Je me demandais donc si c'était possible en JS de décoder du UTF8.
En fait j'ai l'impression que le décodage doit se faire à ce moment précis :
Donc je sais pas trop... Je vais peut etre essayer un responseXml, puisque ce qu'il me faut c'est les données, la structure de mon formulaire je peux le faire dans ma page principale.Code:document.getElementById(id).innerHTML = xhr.responseText;
pourquoi veux tu decoder de l'utf8 coté cleint ?????
tu as un souci d'affichage ?
et non le responseText n'arrive pas toujours en utf8 ...
Oui j'ai un soucis d'affichage, les caractères spéciaux bien français qui m'embêtent :?
La page html que j'importe, j'arrive pas à la faire passer en iso-8859-1... Que ce soit le texte écrit en dur, ou les données récup en php.
j'ai eu le meme souci et j'a simplement fait un utf8 encode ou decode coté php ...
Nan mais... ce que je reçois c'est du HTML (innerHTML) pas du php. Et en plus je le remplis dans le code javascript.
Dans ma page principale, j'ai uniquement du html, avec un id pour le div dans lequel je veux afficher mon formulaire. Et mon code javascript biensûr.
Mais bon tant pis c'est pas grave.
Merci quand même :)
quand on t'indique de faire le codage côté php, c'est qu'on suppose que ton langage utilisé côté est du php..
Où envoies-tu ta requête XMLHttpRequest ? D'où vient le responseText (ou XML) ?
:roll: no comment ...
J'ai finalement réussi à faire passer du ISO-8859-1 par responseXML.
Bizarre quand même, quand je définis l'encodage dans le fichier XML ca fonctionne, mais dans ma page HTML (donc par responseText), ca ne fonctionne pas...
Si ca peut vous aider, oui je fais du utf8_decode dès que j'affiche une donnée par php, dans ma page html qui est appelée.
8Oje sais pas vous, mais moi j'ai bien dans ce thread un post avec ça dedans 4 ou 5 messages au dessus .... 8OCitation:
j'ai eu le meme souci et j'a simplement fait un utf8 encode ou decode coté php ...
spécifier l'encodage en tête du fichier XML fonctionne sous IE.. mais sous Firefox ?
si ton fichier xml est généré par php, ajoute cette ligne avant d'écrire la moindre balise xml :
Code:header('Content-Type: text/xml; charset=ISO-8859-1');
J'ai réussi mon truc avec le responseXML. Mais là sur une autre page, j'ai absolument besoin d'utiliser responseText, puisque c'est du simple texte que je veux faire afficher.
Et biensûr, me revoila avec ce problème d'encodage.
Pour réessayer de m'expliquer, je vais essayer de faire simple.
Dans ma page principale, j'ai une liste de films dans un tableau. A chaque ligne correspondant à un film, j'ai un petit bouton permettant de dérouler une partie juste en dessous pour faire afficher les informations du films.
Ces informations sont affichées par le XMLHttpRequest (responseText, méthode GET). Elles se situent dans une autre page html avec en header l'encodage iso-8859-1.
Et donc cest informations, que du texte, affichent mal les caractères spéciaux, enfin elles sont encodées en UTF8.
Vous n'arrêtez pas de sortir utf8_decode, mais je vois vraiment pas où le placer. J'ai pas de code PHP qui affiche mon texte dynamique, juste mon innerHTML du Javascript qui remplis mes <div>.
Je vois vraiment pas comment expliquer autrement...
Bon c'est bon en fait j'ai trouvé... Je suis vraiment désolé de vous avoir fait perdre votre temps...:(
J'ai tout simplement virer toutes mes en-têtes et balises HTML dans ma page qui était appelée, en laissant simplement mon <table>, et en définissant le l'encodage en php...
Merci de votre aide et patience ! ;)
On ne répètera jamais assez que si le responseText doit être incul dasn la page il ne doit comportre QUE le code HTML des objets, et pas de doctype ni de balise html body ...