Lecture XML via simplexml_load_file() génère une erreur "Input is not proper UTF [Résolu]

Messages postés
49
Date d'inscription
mardi 30 mars 2004
Dernière intervention
22 septembre 2014
- - Dernière réponse : kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 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 :

Warning : simplexml_load_file() [function.simplexml-load-file]<wbr>: media/liste.xml:4: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xF4 0x6E 0x65 0x22 in...

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))

Merci et excellente journée @ toutezéatous,</wbr>
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Dernière intervention
22 septembre 2014
3
Merci
Le pb a été résolu lorsque le pb de l'encoding des accents ont été réglés !

Excellente journée @ toutezéatous !

Merci karpediem 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de karpediem
Messages postés
1
Date d'inscription
mercredi 13 mai 2009
Dernière intervention
13 mai 2009
0
Merci
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 ?

Merci d'avance !
Commenter la réponse de freelance28
Messages postés
49
Date d'inscription
mardi 30 mars 2004
Dernière intervention
22 septembre 2014
0
Merci
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 ?

@ +
Commenter la réponse de karpediem
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
0
Merci
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.

Cordialement,

Kohntark -
Commenter la réponse de kohntark

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.