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 :

XSLT, Delphi et UTF-16


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut XSLT, Delphi et UTF-16
    Bonjour,

    J'utilise le moteur XSLT de Microsoft en Delphi, et même si je force l'encoding du xsl:output à UTF-8 (par exemple), mon document est encodé en UTF-16. J'ai pu voir au travers de mes pérégrinations sur le web que c'est un problème connu mais sans trouver de réelle solution pour Delphi.

    J'ai déjà exposé mon problème sur le forum delphi, mais n'ayant reçu aucune réponse je m'en remet aux spécialistes ici qui connaissent peut être le problème.

    Merci d'avance

  2. #2
    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,

    l'encodage en UTF-16 te pose un problème pour le reste de ton traitement ? Si c'est le cas, je ne vois guère de solution... Si ce n'est récupérer le flux XML de sortie dans une variable chaîne, utiliser une fonction Delphi pour changer l'encodage en UTF-8, et utiliser une expression régulière pour changer l'attribut encoding dans le prologue XML. Pas terrible...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Merci pour la réponse, mais en fait le problème est que le fichier n'est pas réellement en UTF-16. Seul les caractères qui ne font pas parti de l'ascii standard sont encodés en UTF-16, les autres restant codés sur 7 bits. Mon résultat est un fichier HTML qui ne peut être du coup interprété correctement par aucun navigateur.

    Voilà, si quelqu'un avait un bout de code delphi qui permette de générer un fichier html interprétable ça me sortirai une énorme épine du pied (de préférence en UTF-8, mais si ça marche ce sera déjà très bien).

  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
    Citation Envoyé par sovitec
    Merci pour la réponse, mais en fait le problème est que le fichier n'est pas réellement en UTF-16. Seul les caractères qui ne font pas parti de l'ascii standard sont encodés en UTF-16, les autres restant codés sur 7 bits. Mon résultat est un fichier HTML qui ne peut être du coup interprété correctement par aucun navigateur.
    L'encodage que tu décrit est de l'UTF-8, en UTF-16 tous les caractères sont sur 16 bits. Quel est l'encodage qui apparaît dans l'attribut encoding du prologue XML ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Citation Envoyé par GrandFather
    L'encodage que tu décrit est de l'UTF-8, en UTF-16 tous les caractères sont sur 16 bits. Quel est l'encodage qui apparaît dans l'attribut encoding du prologue XML ?
    C'est bien ce qu'il me semblait. En fait que soit la valeur que j'utilise pour encoding, et quelque soit l'encodage de la feuille de style, la sortie est en UTF-8, mais le moteur XSLT rajoute automatiquement un charset=UTF-16 dans la page HTML générée, ce qui m'a trompé.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    J'ai partiellement résolu le problème en allant changer "à la main" le en , mais il me reste un problème dans les URI (src= des images ou href= des ancres) qui ne sont pas encodés comme le reste du document, un "é" devient par exemple "%C3%83%C2%A9". Si je remplace cette chaîne par le code UTF-8 standard le lien marche.

    Donc ma question, qui cette fois concerne vraiment ce forum : est-il possible de coder les URI comme le reste du document ?

Discussions similaires

  1. Comment effectuer une transformation XSLT avec Delphi ?
    Par Raylemon dans le forum Télécharger
    Réponses: 0
    Dernier message: 10/01/2012, 16h21
  2. Enregistrer un mémo en UTF-8 sur Delphi 2007
    Par vedge2000 dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2011, 14h34
  3. [XSLT] encoding UTF-8 et accents
    Par Lolitaaa dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 26/11/2008, 16h11
  4. [XSLT] XML+XSL=HTML avec charset UTF-16
    Par Steph4fun dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/10/2006, 07h54
  5. Processeur XSLT et UTF-8
    Par sovitec dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 08/09/2005, 10h08

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