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 :

Probleme d'encodage des caractères spéciaux


Sujet :

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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Probleme d'encodage des caractères spéciaux
    Bonjour à tous,

    Je souhaite modifier l'encodage d'un xml : passer de l'iso-8859-1 à de l'utf-8.
    J'ai en entrée un xml avec des caractères accentués (à é, etc... )

    J'aimerai que dans mon xml de sortie j'ai le même xml mais à la seule différence que les caractères spéciaux devront être encodés ( & #224; etc...)

    J'utilise axis pour créer des web services (utf-8) et lors de la désérialisation (quand je passe mon tomcat en debug) je m'aperçois que les caractères spéciaux encodés ont été remplacés par les caractères accentués. (comme si j'étais en iso-8859-1)

    j'utilise castor xml pour crée un xml pouvant être lu par un batch c++. (c'est principalement lui qui n'aime pas ces caractères là)

    j'ai tenté d'utilisé une transformation xslt pour modifier l'encodage mais cela ne fonctionne pas !! :'(

    Si quelqu'un a une idée pour modifier l'encodage réellement (la modification de l'encoding ne marche pas), il m'enlèverait une épine du pied !!

    Merci d'avance.

    Pascal.

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    sous linux tu as la commande iconv :
    iconv -f iso-8859-1 -t utf8 fichier_a_traiter -o fichier_de_sortie

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 161
    Points : 168
    Points
    168
    Par défaut
    bonne suggestion ! car selon l'installation de ta jre, il se peut que la jvm fasse des conversions d'encodage assez agassantes... j'ai eu un pb similaire récemment, je voulais sortir un fichier encodé en utf-8 et sur une jre sous linux ou je n'avais pas le francais comme langue supportée par l'os, je me retrouvais avec de l'ascii systématiquement. En générant depuis windows supportant le français la jre me sortait de l'utf-8.
    Ca ne veut évidemment pas dire qu'il faut passer sous windows mais c'est juste pour dire de faire attention a la langue de ton os, tout du moins celle considérée par la jre au moment de son installation.
    Je sais pas si ça t'aide...

    allez bonne chance !

  4. #4
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Points : 220
    Points
    220
    Par défaut
    Moi aussi j'ai un problème d'encoding, sauf que c'est dans l'autre sens ... quand je créé mon document XML (org.w3c.dom.Document) j'ai l'encoding qui est de type UTF-8, mais je le voudrais en iso-8859-1, le problème c'est que je n'ai pas la méthode setXMLEncoding !!!

    Comment faire ??

    J'ai essayer de le faire avec DOM4J mais la, j'ai des problèmes avec Xpath :/

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Xerces
    Si ca peux t'aider j'ai une petite méthode qui marche pas trop mal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
      private static void generateStringXML(Document _xmlDoc) throws IOException {
        XMLSerializer serializer = null;
        OutputFormat outFormat = null;
        String result = null;
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try {
          // OutputFormat
          outFormat = new OutputFormat();
          outFormat.setEncoding("UTF-8");
          outFormat.setVersion("1.0");
          outFormat.setIndenting(true);
          outFormat.setIndent(4);
          // Serializer
          serializer = new XMLSerializer(os, outFormat);
          serializer.setOutputFormat(outFormat);
          serializer.serialize(_xmlDoc);
          // On récupère le resultat
          result = new String(os.toByteArray());
          os.close();
          FileWriter fichier = new FileWriter("resultat.xml");
          fichier.write(result);
          fichier.close();
        } catch (IOException e) {
          throw e;
        }
      }
    T'as besoin du jar xerces par contre.

    Voilà !! j'espère que ca marchera pour toi. :S

Discussions similaires

  1. [eCommerce] Encodage des caractère spéciaux
    Par kidboy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/12/2010, 16h17
  2. Encodage des caractères spéciaux
    Par ambe_fr dans le forum Flex
    Réponses: 0
    Dernier message: 22/07/2010, 14h44
  3. [Encodage] Que pensez-vous de (é => é => é) encodage des caractères spéciaux ?
    Par xess91 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/05/2010, 14h30
  4. Mail | probleme d'encodage des caractères
    Par kippix dans le forum Debian
    Réponses: 1
    Dernier message: 19/05/2007, 22h36
  5. Réponses: 15
    Dernier message: 24/02/2006, 14h17

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