IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

"é" devient "é" !


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 495
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 495
    Points : 13 162
    Points
    13 162
    Par défaut "é" devient "é" !
    bonjour,

    mon problème ressemble à celui du post suivant : http://www.developpez.net/forums/viewtopic.php?t=106896
    je n'ai rien trouvé d'autre sur le reste du forum et dans les tutoriaux

    mon problème :
    dans mon xml j'utilise "encoding="utf-8"" et j'ai replacé les "é" par "&#233". dans mon xsl j'utilise aussi l'utf-8 et pareil pour la methode sortie et en sortie j'obtient "é" !!

    je peut modifier mon XML et mon XSL
    est ce que quelqu'un sait comment afficher des "é" en sortie ??

    merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    mai 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : mai 2003
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Moi je fais avec et les é apparaissent bien.

    a+

  3. #3
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 591
    Points : 1 053
    Points
    1 053
    Par défaut
    Il faut enregistrer ton fichier (avec notepad par exemple) en UTF-8. Je fais comme ça et je n'ai jamais eu aucun problème.

  4. #4
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Soluce :
    1- Utilise de l'ISO-8859-1 dans ton XML (comme le suggère scorpia)
    2- Si tu gardes une sortie UTF-8 dans ton fichier XSL, tu obtiens biens une sortie du style é. C'est normal, c'est l'encodage de la lettre é dans l'unicode :-)
    http://www.unicode.org/

    Le problème vient du logiciel utilisé pour regardée la sortie de ton XSL ... Notepad je suppose ? Un pote m'a forcé à visiter un site en Chinois pour voir comment Windows supportais bien l'UNICODE. Internet Explorer (parce qu'en plus il m'a forcé à quitter Mozilla pour cette daube) m'a proposé d'installer le langage Chinois : ok ok. Téléchargement ... Hop hop dépêche toi ... Installation. Voilà : IE supporte le Chinois. Il me dit alors Copie/Colle du texte dans NotePad (bloc-note) : hé ben ça marche :-O

    Conclusion : va sur un site chinois avec IE et installe l'Unicode, t'auras plus ce problème.

    Pour info, un fichier texte doit avoir un entête (FF FE en hexadécimal je crois) pour être interprété comme Unicode.

    Solution de facilité : regarde la sortie de ton XML avec Mozilla ou IE ... Ou change l'encoding en ISO-8859-1 :-p

    @+ Haypo

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 495
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 495
    Points : 13 162
    Points
    13 162
    Par défaut Ringo
    J'avais oublié de préciser que j'utilisais PHP 4.2.0 (celui qui est dans easyphp) et apparement on ne peut faire autre chose que du utf-8 en sortie de l'XSL
    j'ai essayé en PHP 4.3.2 en mettant partout "iso-8859-1" et ca fonctionne, j'obtient bien mes "é" en sortie donc RESOLU


    et c'est la que j'ai remarqué que je ne veux pas du tout de "é" en sortie !!!!
    en effet je suis en train de faire des test pour produire de l'XHTML et en XHTML il faut remplacer les "é" et autres par leurs entités

    donc pour utiliser mon fichier XML en iso-8859-1 avec une sortie en utf-8 j'applique le traitement suivant à mon XML avant de l'envoyer à mon XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $xml = htmlentities($xml);
    $xml = str_replace('&', '&', $xml);
    $xml = str_replace('&lt;', '<', $xml);
    $xml = str_replace('&gt;', '>', $xml);
    $xml = str_replace('"', '"', $xml);
     
    $xml = str_replace('&', '&amp;', $xml);

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut
    Pour moi la solution a été :

    préciser l'encodage ISO-8859-1 dans
    -le fichier XML
    -le fichier XSL
    -le parseur.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo