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

karpediem 49 Messages postés mardi 30 mars 2004Date d'inscription 22 septembre 2014 Dernière intervention - 30 mars 2009 à 11:35 - Dernière réponse : kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention
- 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
karpediem 49 Messages postés mardi 30 mars 2004Date d'inscription 22 septembre 2014 Dernière intervention - 31 mars 2009 à 15:36
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de karpediem
freelance28 1 Messages postés mercredi 13 mai 2009Date d'inscription 13 mai 2009 Dernière intervention - 13 mai 2009 à 15:45
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
karpediem 49 Messages postés mardi 30 mars 2004Date d'inscription 22 septembre 2014 Dernière intervention - 13 mai 2009 à 18:24
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
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 13 mai 2009 à 18:57
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.