karpediem
Messages postés49Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention22 septembre 2014
-
30 mars 2009 à 11:35
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
13 mai 2009 à 18:57
Bonjour @ toutezéatous,
J'ai un petit pb lorsque j'essaie de lire un fichier XML qui m'est transmis par un prestataire. C'est ma première expérience de manipulation de XML, c'est la raison pour laquelle je suis assez ignorante en la matière...
Voila ce ui se passe : lorsque j'essaie de lire le fichier XML sur ma page php via une simple instruction $xml = simplexml_load_file('../media/liste.xml'); j'ai le message suivant :
Pourtant l'en-tête du fichier est bien :
<?xml version ="1.0" encoding="UTF-8" ?>
Ce même fichier est lu dans une animation flash, mais il s'arrête à la lecture du 1er noeud.
En
revanche, si je l'ouvre via un éditeur (dream en l'occurrence), que je le modifie et que je
l'enregistre à l'identique tout rentre dans l'ordre (dans php et dans flash)...
Ce que j'ai pu constater en ouvrant les fichiers avec nodepad++ c'est que les formats des fichiers ne sont pas les mêmes :
- Le XML original a un format UNIX - ANSI
- Le XML une fois modifié a un format Dos/Windows - ANSI as UTF-8
A mon avis, le problème vient de ce format, ce qui corroborerait le message d'erreur php "Input is not a proper UTF-8", mais avant de renvoyer l'info au prestataire qui me fournit le fichier, je souhaiterais avoir votre avis...
Le fait que ce soit UNIX ou Dos/Windows est lié à la machine sur laquelle le fichier est généré ?
A mon avis le pb vient plus du ANSI que du UNIX... Qu'en pensez-vous ?
Pensez-vous que lors de la génération du fichier XML, le prestataire peut "forcer" le formatage du fichier à du "vrai" UTF-8 ?
Est-ce que de mon côté je pourrais l'ouvrir autrement pour ne pas rencontrer le pb ?
J'avais prévenu que mes questions seraient assez basiques ;o))
freelance28
Messages postés3Date d'inscriptionmercredi 13 mai 2009StatutMembreDernière intervention 4 novembre 2022 13 mai 2009 à 15:45
Bonjour
J'ai le même pb que toi : on me transfère un fichier xml : j'ai la même erreur xml que toi
Quand j'enlève les accents, plus d'erreur mon traitement se passe bien.
Comment as-tu fait pour régler l'encoding des accents stp ?
karpediem
Messages postés49Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention22 septembre 2014 13 mai 2009 à 18:24
Bonjour,
En fait moi je n'ai rien résolu ;o))
J'ai remonté l'info au prestataire qui avait en charge de générer les fichiers XML et il a corrigé. En revanche, je ne sais pas comment il a fait. Ce qui est clair c'est que le pb venait de lui et qu'il a fait le nécessaire puisque c'était de SA responsabilité...
Qui te fourni les XML ? Tu ne peux pas lui remonter l'info ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 13 mai 2009 à 18:57
Salut,
A mon avis il a tout simplement encodé le fichier correctement, donc en UTF-8 format DOS/WINDOWS
En espèrant ne pas dire de conneries :
Le fait que ce soit UNIX ou Dos/Windows est lié à la machine sur laquelle le fichier est généré ? = >
Par défaut oui, mais il est très simple de le modifier.
A mon avis le pb vient plus du ANSI que du UNIX... Qu'en pensez-vous ?
=>
Oui, sans aucun doute. C'est un problème d'encodage, pas de format de fichier (DOS, MAC, UNIX)
Pensez-vous que lors de la génération du fichier XML, le prestataire peut "forcer" le formatage du fichier à du "vrai" UTF-8 ? = >
Bien sur, la preuve, il l'a fait
Est-ce que de mon côté je pourrais l'ouvrir autrement pour ne pas rencontrer le pb ?
=>
Bien sur (bis), en utilisant par exemple mb_string ou iconv.
@freelance :
La meilleure solution reste la fourniture d'un fichier conforme à ton utilisation, mais tu peux très bien changer son encodage soit par la balise soit en utilisant les fonctions sus citées.