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

Format d'échange (XML, JSON...) Java Discussion :

[Castor] xml encoding unmarshaller/marshaller


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Par défaut [Castor] xml encoding unmarshaller/marshaller
    Bonjour à tous!
    J'ai un petit soucis sur l'utilisation de l'API Castor sur l'encodage des caractères!!!
    J'ai créer mes objets jaxb à partir des fichiers xsd dont l'en tête est celle-ci
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="UTF-8"?>
    (même en tête pour mes fichiers xml.)

    La génération des objets java est OK.

    Le problème vient au moment de la lecture et l'écriture du flux XML. Les accents sont encodés en ASCII (je crois) au lieu de UTF-8.
    Exemple: éàçùâèûîï devient "éà çùâèûîï"
    voici mon bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Reader reader = new FileReader(New File("test.xml");
    Unmarshaller unmarshaller = new Unmarshaller(MyJAXBClass.class);
    Object xml = unmarshaller.unmarshal(reader);
    Quelqu'un pourrait me dire pourquoi unmarshaller de Castor ne prend pas en compte l'entête du fichier xml notamment l'encodage des caractères en UTF8 ?

    J'ai même forcé l'écriture du marshaller en faisant un setEncoding("utf-8") mais sans succès.


    voici les versions utilisés:
    Castor 1.1.2.1
    Xerces 2.9.0

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Par défaut
    bon j'ai trouvé ! (J'ai lu plus attentivement la doc de castor)
    Pour ceux que ça intéresse il faut faire ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     String encoding = "UTF-8";
     InputStream is = new FileInputStream(new File("test.xml"));
     InputStreamReader isw = new InputStreamReader(is, encoding);	
     Unmarshaller unmarshaller = new Unmarshaller(MyJAXBClass);
     Object xml = unmarshaller.unmarshal(isw);

  3. #3
    Invité de passage
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Par défaut
    Plus de 6 ans plus tard, ça m'a servi. Merci chef!

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

Discussions similaires

  1. Erreur lors du marshalling d'une grappe d'objet avec Castor XML
    Par mbinte dans le forum Persistance des données
    Réponses: 2
    Dernier message: 29/08/2008, 17h07
  2. instruction pour xml Encoder utf-8
    Par totoche dans le forum ASP
    Réponses: 7
    Dernier message: 14/02/2007, 11h03
  3. [XML] [Encoding] Codifier caractère null en XML
    Par Matmal11 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2006, 13h59
  4. [Castor][XML] ArrayList et item
    Par mezoo dans le forum Persistance des données
    Réponses: 1
    Dernier message: 05/07/2006, 14h29
  5. [xml] Encoding, accentuation d'un Node
    Par arnolem dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/02/2006, 09h24

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