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 :

Problème d'encodage XML [SAX]


Sujet :

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

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Par défaut Problème d'encodage XML
    Bonjour,
    J'ai un petit probleme quand j'eesaye de lire un fichier xml via java. J'ai en gros se genre d'erreur

    Caused by: org.xml.sax.SAXParseException: Invalid byte 2 of 3-byte UTF-8 sequence.

    Enfaite j'ai fais une petite recherche sur le net et j'ai trouver que le fichier xml que j'essaye de lire est mal encoder et qu'il faut genre l'ouvrir avec notepad et le sauveguarder en UTF-8. Le probleme c'est que se fichier xml est generer sur un serveur et apres je le recupere donc je ne peut pas le modifier je ne peut que le lire pour recuperer les infos que j'ai besoin sauf s'il y a une moyenne de le re-encoder via java. Merci d'avance de votre aide.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu dois te renseigner sur le type d'encodage utilisé par le serveur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par rasenganguy Voir le message
    Enfaite j'ai fais une petite recherche sur le net et j'ai trouver que le fichier xml que j'essaye de lire est mal encoder et qu'il faut genre l'ouvrir avec notepad et le sauveguarder en UTF-8.
    Si Notepad peut y faire quelque chose, alors ce n'est pas que le fichier est mal encodé, c'est qu'il est encodé en autre chose qu'UTF-8, et ne l'annonce pas dans sa déclaration XML.
    Quand ce n'est pas indiqué dans une déclaration XML, l'encodage d'un fichier XML est supposé être UTF-8, sauf si un protocole pré-établi définit autre chose.

    Ici, le parseur ne voit pas de déclaration d'encodage, donc suppose que c'est du UTF-8, mais apparemment tu es censé savoir que le serveur utilise un autre encodage. Et donc forcer le parseur à utiliser l'encodage du serveur. Il n'y a pas besoin de notepad ou de convertir quoi que ce soit. L'encodage du serveur est probablement iso-8859-1.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Par défaut
    Je viens de trouver une solution. J'ai ajoute ce code au debut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    FileInputStream fileInputStream = new FileInputStream(new File("myFile.xml") );
    	    	InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
    	    	InputSource inputSource = new InputSource(inputStreamReader);
     
    	    	DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    	        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    	        Document doc = docBuilder.parse (inputSource);
    au debut j'utilisais la methode normale et pas celle-ci ou j'utilise FileInputStream pour recuperer le fichier. En realite je comprends pas trop pourquoi mais ca marche maintenant j'ai acces aux informations dans le fichier xml.

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

Discussions similaires

  1. Problème d'encodage XML vers BDD
    Par ciolvic dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/12/2012, 14h03
  2. [XML]Problème d'encodage XML avec un XmlTextWriter
    Par fragmonster dans le forum VB.NET
    Réponses: 0
    Dernier message: 15/09/2009, 10h28
  3. Problème d'encodage XML
    Par tinkerbell dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 29/07/2009, 11h37
  4. Problème d'encodage xml
    Par snake_th dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 24/09/2008, 10h20
  5. problème d'encodage xml
    Par freestyler dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 04/06/2007, 10h57

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