xhr(ajax?) xml et encodage
salut,
j'ai du me mettre à xhr pour faire un système d'autocompletion.
parmis les données qui vont se retrouvées dans la liste de completion il y a des accents.
j'utilise pour le site du iso et comme d'habitude le xml doit etre encodé en utf-8, ça a donc posé quelques problèmes pour récupérer les données sur la page encodé en iso.
à force de fouiller le web j'ai trouvé une solution mais du coup j'ai plus très bien compris la nécessité d'encoder un fichier xml en utf-8...et j'aimerais bien comprendre.
-première méthode en utf-8:
donc au départ j'envoi un header pour dire que ce qui va partir est du xml, sans préciser d'encodage(c'est du php):
header("Content-type: application/xml");
ensuite je converti toutes les entités html en utf8(j'ai pris l'habitude de ne pas stocker d'accent dans la base) pour pas faire planter le xml.
je génère le fichier xml, je l'encode en utf-8 et je l'envois.
donc là je me retrouve avec des problèmes sur ma page en iso.
-deuxième méthode en iso:
pour le header:
header("Content-type: application/xml; charset=ISO-8859-15");
cette fois je converti les entités en iso.
puis je balance le code xml sans l'encoder en utf-8...et ça marche très bien.
donc c'est là que je comprend plus.
j'ai l'impression d'avoir encodé du xml en iso et tout marche bien, xhr s'en sert sans problème.
si quelqu'un sait pourquoi ça marche, je l'écoute.
Re: xhr(ajax?) xml et encodage
Citation:
Envoyé par tthierry
si quelqu'un sait pourquoi ça marche, je l'écoute.
Euh, j'avoue ne pas saisir ta question... Tu te demandes pourquoi ça marche ??? :koi:
Si ça marche, te poses pas de questions :)
Sinon, pour te répondre quand même, il n'y aucune raison que ça ne marche pas. Par défaut (si tu ne précises rien), l'encodage d'un fichier XML se fait en UTF-8. Mais si tu fais autre chose, en encodant correctement ton fichier XML, et en précisant l'encodage dans l'entete de ton fichier (ce que tu fais), et ben ça marche très bien quand même :)
Re: xhr(ajax?) xml et encodage
Citation:
Envoyé par denisC
Sinon, pour te répondre quand même, il n'y aucune raison que ça ne marche pas. Par défaut (si tu ne précises rien), l'encodage d'un fichier XML se fait en UTF-8. Mais si tu fais autre chose, en encodant correctement ton fichier XML, et en précisant l'encodage dans l'entete de ton fichier (ce que tu fais), et ben ça marche très bien quand même :)
C'était bien ça, j'avais oublié spécifié l'encodage dans le flux xml.
Si ça peut servir voila ce qu marche.
header http:
header('Content-type: text/html;');
conversion des entitées html au format iso
encodage du flux xml:
<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
envoi du flux xml
je précise que la méthode marche avec ie, ff, opéra, safari et konqueror.