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

Java Discussion :

Question sur l'encodage et le TextArea


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Par défaut Question sur l'encodage et le TextArea
    Bonjour,

    J'ai utilisé ceci pour rediriger ma sortie console vers un JTextArea :

    http://java.developpez.com/sources/?...eamToJTextArea

    Or cela ne sort pas en UTF-8...

    Auriez-vous une solution pour faire face à cela ??? Après plusieurs recherche je ne trouve pas...

    et le fait d'eesayer de rajouter le paramètres, "UTF-8" sur le constructeur du printStream ne semble être autorisé pour cette source...

    Bien cordialement,

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    la classe JTextAreaOutputStream donnée en exemple sur ce lien est un outputstream censé permettre d'écrire dans un composant d'affichage de texte, donc du texte à priori, donc en java sous forme de String.
    Or elle n'a que des méthodes écriture d'octets ou de buffer d'octets, converti en String en utilisant l'encodage par défaut (new String(byte[]))

    Le principe est de l'encapsuler dans un PrintStream, pour pouvoir écrire dans cette console à base de JTextArea comme on le ferait par un System.out.print...

    le problème est que si tu indiques un charset quand tu construits ton PrintStream, la chaine de caractères que tu passeras à la méthode print du PrintStream sera convertie en tableau d'octets selon ce charset, et donc écrit selon l'encodage correspondant dans JTextAreaOutputStream : cette classe partant du principe que le tableau d'octets est dans l'encodage par défaut, ce qui n'est pas le cas de ton PrintStream (si tu as fait new PrintStream(new JTextAreaOutputStream(), xxx) avec xxx différent de l'encodage par défaut.

    Donc construis ton PrintStream sans indiquer d'encodage (du coup PrintStream et JTextAreaOutputStream utiliseonst tous les deux l'encodage par défaut

    Tu peux vérifier l'encodage par défaut par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class AfficheDefaultCharSet {
     
        public void main(String[] args) {
            System.out.println(Charset.defaultCharset().name());
        }
     
    }
    Si c'est différent de UTF-8, le fait d'indiquer UTF-8 dans le PrintStream ne permettra pas de corriger ton problème.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Par défaut
    Re-salut,

    j'ai tester et cela m'affiche bien UTF-8, Or la sortie sur ma TextArea ne semble toujours pas m'afficher les caractères avec accent tel que le é ou è mais des petits carrés à la place...

    Je ne sais trop comment résoudre ce problème,
    Que puis-je faire sans passer par des tableau de byte ?

    Merci d'avance...

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ScreamZ Voir le message
    Re-salut,

    j'ai tester et cela m'affiche bien UTF-8, Or la sortie sur ma TextArea ne semble toujours pas m'afficher les caractères avec accent tel que le é ou è mais des petits carrés à la place...

    Je ne sais trop comment résoudre ce problème,
    Que puis-je faire sans passer par des tableau de byte ?

    Merci d'avance...
    Mais tu écris bien dans ta console par des System.out.print... ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. question sur l'encodage
    Par polo42 dans le forum Général Python
    Réponses: 3
    Dernier message: 29/01/2008, 15h42
  2. question sur la balise< textarea>
    Par marti dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/12/2005, 11h16
  3. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  4. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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