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 :

Invalid byte 2 of 3-byte UTF-8 sequence.


Sujet :

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

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut Invalid byte 2 of 3-byte UTF-8 sequence.
    bonjour,
    je suis entrain de parser un fichier qui contient des informations écrites en français avec ce code:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public void ClassInfo(String label){
     
     
    		 String pathconceptclass="Z:\\concept\\conceptclassFR.xml";
    		 String id;
    		 Boolean trouv=false;
    		 Boolean trouv2=false;
    		 String str1="";
    		 String classid;
    		int i2=0;
    		 int j=0;
    		 int i1=0;
    		 int i3=0;
          org.w3c.dom.Element racine;
          Document doc;
    		 try
    		    { 
    			 DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
    			 DocumentBuilder parser = factory.newDocumentBuilder();
    			 doc = parser.parse(pathconceptclass); 
    		     racine=doc.getDocumentElement();
    		     NodeList liste = racine.getElementsByTagName("Patentid");
    		     while((i1< liste.getLength()) && (trouv==false)){
    		    	org.w3c.dom.Element  e = (org.w3c.dom.Element) liste.item(i1); 
    		    	NodeList liste2= e.getElementsByTagName("Classid");
    		    	NodeList liste3= e.getElementsByTagName("Classinfo");
    		         //System.out.println(liste3.getLength());
    		         i2=0;
    		         i3=0;
    		        while ((i2<liste2.getLength()) && (trouv==false)){
    		        	org.w3c.dom.Element  e2 = (org.w3c.dom.Element) liste2.item(i2); 
    		        	classid=e2.getTextContent();
    		        	StringTokenizer st= new StringTokenizer(classid," ");
    		        	classid=st.nextToken();
    		        	if(classid.equals(label)){trouv=true;
    		        	org.w3c.dom.Element  e3 = (org.w3c.dom.Element)     liste3.item(i3);
    		        	System.out.println(e3.getTextContent());}
     
    		    	   i3++;
    		    	 i2++;
    		            }
    		          i1++;}
    		     }
    		 catch(Exception e){System.out.println(" we've got a problem");
    			e.printStackTrace ();}
    	}
    mais ce type d'erreur:

    org.xml.sax.SAXParseException: Invalid byte 2 of 3-byte UTF-8 sequence.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    at test.commande.cluto.ManipManualClass.ClassInfo(ManipManualClass.java:455)
    at test.commande.cluto.Exec.AnalysClassCluto(Exec.java:409)
    at test.commande.cluto.Exec.main(Exec.java:70)
    [Fatal Error] conceptclassFR.xml:8:29: Invalid byte 2 of 3-byte UTF-8 sequence.
    alors que je parse avec le même code le même fichier mais avec des informations écrites en anglais.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Cela m'a tout l'air d'un problème d'encodage, par exemple un fichier en ISO-latin1 mais déclarée comme de l'UTF-8...


    a++

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    c'est l'entête de mon fichier xml:
    <?xml version='1.0' encoding='UTF-8'?>

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Oui mais quel éditeur est-ce que tu utilises pour éditer/créer le fichier ?
    Es-tu sûr qu'il utilise bien de l'UTF-8 ?

    a++

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    j'ai pas compris ta question mais je construit le fichier à partir d'un fichier xml qui contient plusieurs informations mais je récupère ce que j'ai besoin et le mettre dans conceptclassFR.xml et avec ce fichier que je parse j'ai le problème.

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Pour faire plus simple : lorsque tu construis ce fichier est-ce que tu précises son encodage ? Si la réponse est non c'est une encodage par défaut qui est utilisé et ce ne doit pas être de l'utf8, d'où le problème.


    Il faut préciser l'encodage du fichier.

    a++

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    non je spécifie pas et je te montre quelque lignes du fichier que je le parse:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Patentid id="5,906,821">
    <Classid>A61K 39/102(20060101); A61K 039/102(); A61K 039/02(); A61K 039/205(); A01N 037/18()</Classid>
    <Classinfo>
    Préparations à usage médical, dentaire 
    </Classinfo>
    </Patentid>

  8. #8
    oca
    oca est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Points : 421
    Points
    421
    Par défaut
    Dans l'éditeur "textpad" tu peux par exemple spécifier utf-8 au moment d'enregister le document

    A+

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par aroua Voir le message
    non je spécifie pas et je te montre quelque lignes du fichier que je le parse:
    <Patentid id="5,906,821">
    <Classid>A61K 39/102(20060101); A61K 039/102(); A61K 039/02(); A61K 039/205(); A01N 037/18()</Classid>
    <Classinfo>
    Préparations à usage médical, dentaire
    </Classinfo>
    </Patentid>

    Ça ne change rien que tu nous montres le contenu ici. Le point est que le fichier sur ton filesystem est encodé selon une norme quelconque et si cet encodage n'est pas UTF-8, les caractères ne seront pas connus par un lecteur UTF-8 et si c'est l'encodage par défaut, alors tes autres utilitaires que tu prends pour examiner le fichier ne le font pas en UTF-8, en conséquence, ils ne voient aucun problème. Et ce n'est pas parce que tu mets UTF-8 en entête que le fichier se retrouve encodé en UTF-8 pour autant. Bref, il faut que tu t'assures de créer le contenu en UTF-8 au moment de l'écriture. Espérant que c'est plus clair.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai eu le même problème et le plus simple, si tu ne trouves pas la solution, c'est d'enlever les caractères "spéciaux". Par exemple enlève les "é"...

  11. #11
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Dans ton editeur tu va sous format ou enregistrer sous le format : et choisit utf8
    ........ cela n as rien a voir avec la premiere ligne de ton fichier xml ni aucune autre c'est juste le format !!
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

Discussions similaires

  1. Erreur "Invalid byte 2 of 3-byte UTF-8 sequence"
    Par boobs60 dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 3
    Dernier message: 30/09/2012, 17h36
  2. Réponses: 15
    Dernier message: 10/02/2009, 08h19
  3. [XStream] Problème "Invalid byte 2 of 3-byte UTF-8 sequence"
    Par Lolitaaa dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 24/11/2008, 18h08
  4. [XSLT] [Xsl/Fop] Invalid byte 3 of 3-byte UTF-8 sequence
    Par Eylir dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 27/12/2007, 11h49
  5. Invalid byte 2 of 3-byte UTF-8 sequence
    Par Finrod dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 06/06/2007, 10h55

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