[XML-PHP] Problème encodage
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 :
Code:
1 2 3
| <rantanplan>
remove lucky - > | " '...
</rantanplan> |
Bref, mon travail consiste à parser ce fichier xml en php, de le stoquer dans une mase Mysql, puis de reconstituer ce fichier xml.
Voici ce que je fais pour enregistrer ma balise en php :
Code:
1 2
| $rantanplan=addslashes(html_entity_decode(trim($doc->rantanplan->asXML())));
puis requete mysql .... |
Lorsque j'interroge ma base de donnée, cela s'affiche correctement, idem lorsque je l'affiche dans une page html.
Le problème apparait vous vous en doutiez lorsque j'exporte cette donnée dans un fichier xml :
Code:
1 2 3 4
|
$rantanplan=$doc->createElement('rantanplan');
$text = $doc->createTextNode($row['rantanplan']);
$rantanplan->appendChild($text); |
Lorsuqe j'ouvre mon fichier xml résultant, les caractères spéciaux s'affichent de la forme
"<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 +