Construire un fichier XML avec des caracteres accentues ?
1 réponse
Michel BILLAUD
J'essaie de construire un document XML contenant des caractères
accentués et autres (iso-latin-1) avec php4 4.1.2. J'ai une méthode
qui ne marche pas (facile !), une qui a l'air de marcher, et je
voudrais savoir si - c'est la bonne - si il y a mieux.
et si j'enchaîne avec un reformatage par xmllint, c'est pire :
+nereis:~/Essais/XML$ php4 -q b.php | xmllint --format -
xmlEncodeEntitiesReentrant : input not UTF-8
-:2: error: Input is not proper UTF-8, indicate encoding !
<mondocument><chaine>hello «éèàôû»</chaine></mondocument>
^
-:2: error: Bytes: 0xE9 0xE8 0xE0 0xF4
<mondocument><chaine>hello «éèàôû»</chaine></mondocument>
^
Visiblement, il y a des caractères qui le fâchent.
TENTATIVE DE SOLUTION
Après quelques essais, j'ajoute une traduction par iconv() au moment
de la construction de l'arbre xml :
<?php
function tr($s) {
return iconv("iso-8859-1","UTF-8",$s);
}
La traduction vers utf8 est-elle la méthode standard pour construire
un document XML à partir de chaînes non ASCII, ou y a-t-il une autre
façon de faire plus raisonnable ?
MB
--
Michel BILLAUD billaud@labri.fr
LABRI-Universite Bordeaux I phone W: 05 4000 6922 / 05 4000 5792
351, cours de la Liberation http://www.labri.fr/~billaud
33405 Talence (FRANCE) http://dept-info.labri.fr/~billaud
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Shrom
"Michel BILLAUD" a écrit dans le message de news:
J'essaie de construire un document XML contenant des caractères accentués et autres (iso-latin-1) avec php4 4.1.2. J'ai une méthode qui ne marche pas (facile !), une qui a l'air de marcher, et je voudrais savoir si - c'est la bonne - si il y a mieux.
La solution est dans le texte, les caractères ne sont pas au format UTF-8 (UTF-8 est l'encodage par défaut de XML et donc de libxml).
Solution: convertir en utf8 les caractères: $head = $root->new_child("chaine", utf8_encode("hello éééé"));
"Michel BILLAUD" <billaud@labri.u-bordeaux.fr> a écrit dans le message de
news:7zr84x2j2x.fsf@serveur4.labri.fr...
J'essaie de construire un document XML contenant des caractères
accentués et autres (iso-latin-1) avec php4 4.1.2. J'ai une méthode
qui ne marche pas (facile !), une qui a l'air de marcher, et je
voudrais savoir si - c'est la bonne - si il y a mieux.
J'essaie de construire un document XML contenant des caractères accentués et autres (iso-latin-1) avec php4 4.1.2. J'ai une méthode qui ne marche pas (facile !), une qui a l'air de marcher, et je voudrais savoir si - c'est la bonne - si il y a mieux.