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

XML Discussion :

Bug Xerces2_1_0 avec C++ et Linux ??


Sujet :

XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Bug Xerces2_1_0 avec C++ et Linux ??
    Bonjour à tous,
    voila j'utilise xerces2_1_0 sous linux avec du c++ pour parser du xml et j'ai vraiment l'impression que ca fait n'importe quoi ( ou que c'est moi qui fait n'importe quoi )

    Quand je recupere les valeurs, y'a tous pleins de caracteres bizarres qui ne sont meme pas dans le fichier xml et qui s'ajoutent à la fin !!

    Avez vous deja eu cette erreur ??

    merci pour votre aide

    a+
    Marie

  2. #2
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    ca vient peut-être de l'encodage (un peu plus de précisions de ta part serait l'idéal) donc vérifie l'encodage du fichier XML et des chaines de caractère en C++

    dans ton XML :
    -si encoding= ISO-8859-1 les caractères sont tous encodés tels quels, donc à priori pas de pbl.
    -si encoding=UTF-8 les caractères spéciaux sont encodés différement : é devient é, etc... tu devras probablement convertir UTF-8 vers le format de ta chaine de caractère
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  3. #3
    Membre du Club Avatar de philemon_siclone
    Inscrit en
    Septembre 2003
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    Ne pas oublier que toute l'API xerces (que ce soit Java ou C++) fonctionne avec de l'UTF-16 (caractères codés sur deux octets (en simplifiant, car dans de très rares cas ça peut être plus)). Or, en C++ on a plus l'habitude d'utiliser du char* (normal, c'est natif) où un caractère est codé sur un octet.

    Concretement, dans Xerces C++, toute chaine XML est de type XMLCh* qui est equivalent à du short* et contient de l'UTF-16. Si tu veux convertir du XMLCh* en char*, ou inversement, il faut utiliser la methode (statique) transcode() de la classe XMLString. En gros dans un programme qui utilise Xerces c++, tu n'arrêtes pas de jongler entre XMLCh* et char* et donc de faire des appels à transcode() (en tout cas c'est mon cas).

    En esperant avoir repondu à ta question,

    Cordialement,

    PS : J'utilise Xerces C++ 2.2.0

Discussions similaires

  1. bug avec le JRE linux?
    Par superlolo2 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 30/08/2007, 16h53
  2. [CSS] Bug IE avec height ne marche pas avec les %
    Par El Riiico dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/06/2005, 17h11
  3. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 11h30
  4. Réponses: 2
    Dernier message: 01/07/2004, 11h05
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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