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

Langage Java Discussion :

Encodage OK en fichier erroné avec getRessource


Sujet :

Langage Java

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut Encodage OK en fichier erroné avec getRessource
    Bonjour,

    J'ai une erreur un peu bizarre.
    Je lis un fichier texte codé en UTF8 et j'affiche le texte sur des boutons. J'ai utilisé deux méthodes : lecture dans un fichier et lecture via getResourceAsStream. Sous Eclipse les deux méthodes marchent très bien. Sous la forme jar cela fonctionne très bien en lisant les fichiers (qui ne sont donc pas intégrés dans le jar) mais affiche mal les caractères via getResourceAsStream avec les fichiers intégrés dans le jar.
    Par exemple dans la chaîne "français", le ç n'est pas reconnu et affiche un autre caractère. Pire cet autre caractère n'est pas toujours le même.
    Comme j'ai eu un problème de lecture des fichiers mp3 dans le jar et que j'ai trouvé qu'il fallait intégrer ces fichiers dans le jar en les stockant sans compression, j'ai cru que c'était la même chose pour les fichiers textes ... mais rien n'y fait.
    Quelqu'un a-t'il eu ce problème ? Une idée peut-être.
    Voici le code de lecture dans le jar
    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
     
    public static String chargerContenuTexte(String fichier) throws IOException
    {
        private static Class<Fichier> chargeur = Fichier.class;
     
        public static String chargerTexte(String fichier) throws IOException
        {
    //    	System.out.println(fichier);
    		StringBuilder  chTmp = new StringBuilder();
    		InputStream is = chargeur.getResourceAsStream("/ressources/donnees/" + fichier);
    		BufferedReader lect  = new BufferedReader (new InputStreamReader(is));
            String ligne ;
            while ((ligne = lect.readLine()) != null)
            {
                chTmp.append (ligne) ;
                chTmp.append ("\n") ;
            }
            lect.close() ;
            lect = null ;
    		return chTmp.toString();
        }
    }
    C'est en respectant les autres que l'on se fait respecter.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    J'ai trouvé. Il fallait seulement réfléchir que le InputStream aussi devait savoir qu'il s'agissait d'UTF8.
    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
     
     
    public static String chargerContenuTexte(String fichier) throws IOException
    {
        private static Class<Fichier> chargeur = Fichier.class;
     
        public static String chargerTexte(String fichier) throws IOException
        {
    //    	System.out.println(fichier);
    		StringBuilder  chTmp = new StringBuilder();
    		InputStream is = chargeur.getResourceAsStream("/ressources/donnees/" + fichier);
    		BufferedReader lect  = new BufferedReader (new InputStreamReader(is),"UTF-8");
            String ligne ;
            while ((ligne = lect.readLine()) != null)
            {
                chTmp.append (ligne) ;
                chTmp.append ("\n") ;
            }
            lect.close() ;
            lect = null ;
    		return chTmp.toString();
        }
    }
    C'est en respectant les autres que l'on se fait respecter.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Patrice Henrio Voir le message
    J'ai trouvé. Il fallait seulement réfléchir que le InputStream aussi devait savoir qu'il s'agissait d'UTF8.
    C'est plutot le reader qui a besoin de savoir ça

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 464
    Points : 332
    Points
    332
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    C'est plutot le reader qui a besoin de savoir ça
    Oui en effet. J'étais tellement vexé d'avoir cherché pendant deux jours sur ce truc qu'une fois trouvé la solution je suis allé au plus direct.
    C'est en respectant les autres que l'on se fait respecter.

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

Discussions similaires

  1. encodage fichier XML avec tinyxml et Visual Studio 2008 C++
    Par hal9000 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 08/04/2009, 17h14
  2. Encodage & Décodage de fichier AMF avec java
    Par Kadran dans le forum Persistance des données
    Réponses: 1
    Dernier message: 04/03/2009, 12h24
  3. Affichage de dates erronées avec fichier CSV
    Par The Molo dans le forum Excel
    Réponses: 4
    Dernier message: 27/12/2008, 12h06
  4. enregistrements erronés avec accès "random" aux fichiers
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/04/2007, 10h11
  5. [java]Encodage fichier XML avec XMLType
    Par adrien.nicolet dans le forum Oracle
    Réponses: 1
    Dernier message: 08/03/2007, 13h09

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