Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2931 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Problème de character set XML et PHP (SimpleXML)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Problème de character set XML et PHP (SimpleXML)

n°1672362
ZeBix
edit > preview
Posté le 16-01-2008 à 16:36:06  profilanswer
 

Avec SimpleXML je charge un fichier XML que j'echo sur une page PHP, et j'ai des problèmes avec les caractères spéciaux. Je suppose que c'est à cause des caractères spéciaux mais je ne trouve pas où, pourquoi ni comment...
 
Fichier XML "myxmlfile" :  

<?xml version="1.0" encoding="ISO-8859-1"?>
<souselement>
 <messageFR>
   <![CDATA[
     <p>A partir de mardi il ne sera plus distribué de nouvelles cartes de fidélité. Cette intervention est la conséquence du coût croissant des denrées alimentaires (...) </p>
    ]]>
 </messageFR>
</souselement>


 
Code PHP :  

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html><head>
  3. <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  4. </head>
  5. <body>
  6. (...)
  7. <? if(!$xml=simplexml_load_file('./myxmlfile.xml'))
  8. { echo "Couldn't read the xml file";
  9. }
  10. else
  11. { $message =  $xml->messageFR;  
  12. }
  13. echo $message;
  14. ?>
  15. (...)


 
Output :  

Citation :

A partir de mardi il ne sera plus distribué de nouvelles cartes de fidélité. Cette intervention est la conséquence du coût croissant des denrées alimentaires (...)


 
J'ai bien défini le ISO-8859-1 (pas de débat entre ISO vs UTF-8 svp, je n'ai pas le choix), je ne comprends pas pourquoi ça ne va pas ...  :fou:  
 
Je dois sûrement oublier un paramètre ou une option quelque part ... mais où :??:  (à part dmc  :whistle: )
 
Quelqu'un a une idée ?


Message édité par ZeBix le 17-01-2008 à 16:29:47
mood
Publicité
Posté le 16-01-2008 à 16:36:06  profilanswer
 

n°1672504
fifiz
Posté le 16-01-2008 à 20:53:17  profilanswer
 

Utilise UniRed pour vérifier que ton fichier xml est bien encodé en ISO-8859-1
 
Unired > www.esperanto.mv.ru/UniRed/FRA/index.html
 
Sinon c'est ta fonction simplexml_load_file qui ne tient pas compte de l'encodage du fichier xml lecture en ascii et là à part changer de fonction ...
 
Essais de changer tous tes encodages en UTF-8 c'est relativement standart on sait jamais

n°1672854
ZeBix
edit &gt; preview
Posté le 17-01-2008 à 16:28:43  profilanswer
 

Merci pour ta réponse :)
 
J'ai installé UniRed (tout une épopée de trouver le mot "Langues" dans l'interface par défaut qui est d'office en russe :), merci Babelfish!) mais il n'a pas aidé à résoudre le problème :/
 
On a chipoté un peu, et on a trouvé la solution !
Apparemment, le simpleXML lit tout en UTF-8, et ce n'est pas paramétrable. Il faut donc "décoder" cet UTF-8 qui ne l'est pas en vérité :)
 

Code :
  1. else
  2. { $message =  utf8_decode($xml->messageFR); 
  3. }


 
Et tout fonctionne à merveille !

n°1673576
fifiz
Posté le 18-01-2008 à 20:54:09  profilanswer
 

UniRed affiche l'encodage réel d'un fichier texte dans la barre en bas, très pratique pour vérifier la cohérence de la déclaration avec l'encodage réel du fichier pour les fichiers xml.
 
Effectivement faut tatonner un peu à la première ouverture =)
Sinon, ces histoires d'encodage c'est une vrai plaie ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Problème de character set XML et PHP (SimpleXML)

 

Sujets relatifs
Probléme d'image dans un tableau PHP/MYSQLValidation fichier XML sous PHP5
[PHP] affichage requete ODBC dans un tableau[Résolu] Parsage d'un flux XML, les accents = découpe du texte
Problème Objet ConcaténéProbleme TtabSheet, Focus et ActiveControl... [Resolu]
Tableau PHP 
Plus de sujets relatifs à : [Résolu] Problème de character set XML et PHP (SimpleXML)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR