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

Windows Forms Discussion :

XML et Encoding : Passez de l'UTF-8 à l'ISO-8859-1


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut XML et Encoding : Passez de l'UTF-8 à l'ISO-8859-1
    Bonjour à tous. J'espère ne pas faire doublon, mais vu que ça fait 2 jours pleins que je parcours la toile, je ne pense pas.

    Mon problème est simple. Je distribue des données, stockées en base, via des flux XML. La base (Postgres) est en UTF-8. Tant que les fichiers que je génère (VB.net framework 2.0) sont en UTF-8, pas de soucis.

    Là où ça se corse, c'est quand je souhaite faire de l'ISO-8859-1. Que ce soit en passant par la classe XmlDocument ou XmlTextWriter, le résultat est le même :

    Les caractères ' € ' sont remplacés par des ' ? ' et j'ai des doubles quotes ' “ ' qui sont remplacées par des doubles quotes standard ' " ' (ceci dans un attribut rend d'ailleurs le XML invalide, elles devraient être remplacées par des &quot).

    Je sais par ailleurs que ' € ' ne fait pas partie du jeu de caractère ISO-8859-1, mais mon parser actuel le transforme en €. Comment faire de même avec .net ? Coment régler le problème des doubles quotes ?

    Merci d'avance pour vos idées, conseils...

    Aurell

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    J'ai le même problème, sauf que j'exporte en XML depuis SQL Server et je réimporte en VB via LINQ.

    Tu as trouvé une solution pour ton problème ?

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Peut être avec ceci ?

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Merci StormimOn,

    mais moi j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim XDoc As XDocument = XDocument.Load("monChemin")
    et on ne peux pas spécifier l'encodage apparemment.

    Mon XML de base est encodé en "iso-8859-1",
    mais lorsque j'affiche les données dans un TreeView à partir de VB, des caractères (carré surtout) remplace les caractères "français", comme par exemple œ=un carré.

    Tu as une idée ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    Mon XML de base est encodé en "iso-8859-1",
    mais lorsque j'affiche les données dans un TreeView à partir de VB, des caractères (carré surtout) remplace les caractères "français", comme par exemple œ=un carré.
    Le 'œ' ne fait pas partie du jeu de caractères ISO-8859-1. Comment est-il représenté dans ton fichier XML ?

    Aurell

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Citation Envoyé par aurell Voir le message
    Le 'œ' ne fait pas partie du jeu de caractères ISO-8859-1. Comment est-il représenté dans ton fichier XML ?

    Aurell
    Pourtant si, regarde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="iso-8859-1"?>
    <Bats>
    	<Bat Nom="A">
    		<Disp Nom="Manœuvre">
    			<R Nom="Largeur &gt;= 1,20 m (toléré : &gt;= 1 m)" />
    			<R Nom="Hauteur &lt;= 16 cm (toléré : &lt;= 17 cm)" />
    		</Disp>
    	</Bat>
    </Bats>

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Peut être avec ceci ?
    Non, le résultat est le même. Dans mon cas le '€' ne faisant pas partie du jeu de caractères de destination, il est bêtement remplacé par un '?' et les drôles de doubles quotes...

    Exemple avec le code cité :
    Source UTF-8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <XmlTestRoot>
      <XmlTest texte="“9” connaît alors ... 3 €" />
    </XmlTestRoot>
    Destination ISO-8859-1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="iso-8859-1"?>
    <XmlTestRoot>
      <XmlTest texte=""9" connaît alors ... 3 ?" />
    </XmlTestRoot>
    Vous remarquerez bien qu'avec les doubles quotes, la destination n'est pas valide.

    Aurell

Discussions similaires

  1. Convertir xml utf-8 en ISO 8859-1
    Par riadh2406 dans le forum ASP
    Réponses: 1
    Dernier message: 16/12/2009, 10h56
  2. Encoder une exception UTF-8 en ISO-8859-1
    Par Brunettia dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/06/2008, 11h36
  3. UTF-8 to ISO-8859-1
    Par iso9mix dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/01/2008, 13h38
  4. Encodage : Conversion UTF-8 vers ISO-8859-?
    Par polo54 dans le forum Général Java
    Réponses: 6
    Dernier message: 26/06/2007, 19h10
  5. encodage UTF-8 vers ISO-8859-1
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/04/2007, 11h03

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