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 :

[XSL] Transformation xsl et jeu de caractères cyrillique


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut [XSL] Transformation xsl et jeu de caractères cyrillique
    Bonjour,

    Dans le cadre d'un partenariat franco-bulgare, je suis en train de développer un outil qui fait une transformation xsl pour générer du HTML... avec du texte en cyrillique dedans.

    Dans le fichier XML d'origine pas de souci, le cyrillique passe très bien (<?xml version="1.0" encoding="UTF-8"?>)

    Par contre dans le fichier HTML résultant de la transformation, certains caractères cyrilliques sont transformés en %D0%BC%D0%B0%D1%82 et autres joyeusetés.
    Je dis certains car seuls les URL de liens (l'attribut href de <a> dans le fichier résultat) sont concernés par ce problème.

    Un extrait des données XML d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ulink url="documents\sans nom\020Чужди материали и закони\010Австрия\030Закон за административните наказания.doc">Закон за административните наказания</ulink>
    L'ordre xsl de transformation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <xsl:template match="ulink" mode="restit">
      <img height="5" src="images/bt-cr22.png" width="5" border="0"/>
      <a href="{@url}" target="_blank"><xsl:value-of select="text()"/></a>
      <br/>
     </xsl:template>
    Le résultat en HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="documents\sans nom\020%D0%A7%D1%83%D0%B6%D0%B4%D0%B8 ...D1%8F.doc" target="_blank">Закон за административните наказания</a>
    Comme vous pouvez le voir, le "{@url}" a transformé les caractères cyrilliques en quelque chose de plus hiéroglyphique... Du coup les liens ne marchent pas du tout même si ce qui est affiché à l'écran est bon.

    Je précise que le xslt est censé retourner de l'utf-8 (<xsl:output method="html" encoding="utf-8"/>).
    Ce qui semble se confirmer dans le fichier html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html xmlns:msxsl="urn:schemas-microsoft-com:xslt">
      <head>
        <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    Si quelqu'un pouvait éclairer ma lanterne sur cette transformation XSLT quelque peu bancale, ce serait avec plaisir
    Pensez au bouton

  2. #2
    Membre averti

    Inscrit en
    Août 2005
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 220
    Points : 364
    Points
    364
    Par défaut transformation cyrillique
    As-tu essayé avec le code ISO (ISO 8859-5) plutôt que avec UTF-8... J'ai déjà eu ce genre de problème que certains serveurs ou browsers reconnaissent le code ISO mais pas UTF-8

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Merci du conseil, je vais essayer.

    Par ailleurs il s'avère que le problème ne concerne réellement que l'attribut href de la balise <a>

    Si je le modifie en "hrefzzzz" ou que je mets un événement OnClick à la place, ça fonctionne très bien !
    Pensez au bouton

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    il est normal que ton URL soit encodée de cette façon, cela correspond à la norme RFC1738 qui n'autorise que les caractères US-ASCII dans une URL.

    Ce qui m'étonne un peu plus, c'est que l'espace entre "sans" et "nom" lui ne soit pas encodé... Ca peut peut-être venir de là ?

    [EDIT]

    Quelques infos peuvent être glanées ici : http://www.dpawson.co.uk/xsl/sect2/N3353.html
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par GrandFather
    il est normal que ton URL soit encodée de cette façon, cela correspond à la norme RFC1738 qui n'autorise que les caractères US-ASCII dans une URL.
    "Normal" oui, logique peut-être un peu moins

    Citation Envoyé par GrandFather
    Ce qui m'étonne un peu plus, c'est que l'espace entre "sans" et "nom" lui ne soit pas encodé... Ca peut peut-être venir de là ?
    Je ne sais pas, en effet c'est bizarre.

    Citation Envoyé par GrandFather
    Quelques infos peuvent être glanées ici : http://www.dpawson.co.uk/xsl/sect2/N3353.html
    OK, je vais y jeter un oeil.
    Pour l'instant je contourne le problème en passant par des OnClick mais c'est vrai que c'est pas l'idéal.

    Pensez au bouton

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/07/2008, 16h44
  2. XSL Transformation sour mozilla
    Par bolo dans le forum XSL/XSLT/XPATH
    Réponses: 19
    Dernier message: 08/04/2006, 19h42
  3. [XSL] Transformation DATE
    Par Phenolphtaleine dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/06/2004, 15h57
  4. [XML/XSL] Transformation Excel
    Par Tyler Durden dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 27/11/2003, 21h00
  5. Transformation XSL et caractères spéciaux
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 4
    Dernier message: 28/04/2003, 10h38

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