Bonjour,
je post après m'être arracher les cheveux pendant plusieurs heures sur le problème sans trouver de solution. J'espère que vous pourrez m'aider.
Voici le topo:
j'ai un fichier xml sans entête d'ncodage préciser.
ce fichier contient une balise <rantanplan> dirons nous avec des caracteres speciaux :
Bref, mon travail consiste à parser ce fichier xml en php, de le stoquer dans une mase Mysql, puis de reconstituer ce fichier xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <rantanplan> remove lucky - > | " '... </rantanplan>
Voici ce que je fais pour enregistrer ma balise en php :
Lorsque j'interroge ma base de donnée, cela s'affiche correctement, idem lorsque je l'affiche dans une page html.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $rantanplan=addslashes(html_entity_decode(trim($doc->rantanplan->asXML()))); puis requete mysql ....
Le problème apparait vous vous en doutiez lorsque j'exporte cette donnée dans un fichier xml :
Lorsuqe j'ouvre mon fichier xml résultant, les caractères spéciaux s'affichent de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $rantanplan=$doc->createElement('rantanplan'); $text = $doc->createTextNode($row['rantanplan']); $rantanplan->appendChild($text);
"<abs>"
Bref, j'ai essayer toutes les combinaisons entre:
- spécifier une entête à mon fichier xml de sortie (utf8 et iso).
- appel à la fonction html_entity_decode avant d'ajouter le text au noeud
- appel à utf8_decode, et encode ...
Ca ne marche pas, et ca m'énerve.
Si qu'elqu'un a une solution, il me sauverai la vie (et à celle du PC avant que je tape sur l'ecran).
Merci pour votre aide.
A +
Partager