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 :

Problème d'accents en ligne de commande et programmation Java


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Problème d'accents en ligne de commande et programmation Java
    bonjour

    je veux faire afficher du text en ligne de commande avec un fichier java mais j'ai un problème les accents ne s'affichent pas

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class bienvenue { 
     
     
    public static void main (String args[]) { 
     
    System.out.println(" cette été !   "); 
     
    } 
     
    }

    et dans cmd je marche javac bienvenue.java et ensuite je l'exécute avec java bienvenue

    résultat : cette ÚtÚ ! á


    j'ai tester je fais le fichier avec notepad ++ j'ai tester avec encoding utf8 et utf8 sans blom et plusieurs autre

    est-ce que quelqu'un pourrait me dire comment faire afficher les accents

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Le problème c'est que l'invite en ligne de commande Windows n'utilise pas le même encodage que le reste de Windows. Du coup Java ne sait pas lequel utiliser et là il utilise le mauvais.

    Chez nous autres francophones et anglophones, l'encodage utilisé par la console est normalement ibm850.

    En supposant que pour tester ton programme tu utilises d'habitude la commande :

    Remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Dfile.encoding=ibm850 bienvenue
    Et normalement, si tu n'as pas d'autre soucis d'encodage, les accents s'afficheront bien.

    Si tu veux éviter de modifier la commande à lancer, alors tu dois modifier ton programme pour lui imposer d'écrire en ibm850 sur la sortie standard (ce qui fera très bizarre dès que la sortie standard sera autre chose que l'invite de commande Windows).

    Pour ça, en début de programme, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setOut(new PrintStream(System.out, true, "ibm850"));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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,


    A noter que depuis Java 6 la méthode System.console() reverra un objet Console utilisant le bon encodage dans ce cas là, ou null si on n'est pas dans une vrai console système (exemple console de l'EDI, programme lancé sans console, etc.).


    Du coup on peut récupérer un PrintWriter selon les cas :
    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
    public class Main {
     
    	public static final PrintWriter out = initOut();
     
    	private static PrintWriter initOut() {
    		Console console = System.console();
    		if (console!=null) {
    			return console.writer();
    		}
    		return new PrintWriter(System.out, true);
    	}
     
    	public static void main(String... args) throws Exception {
    		out.println("cet été ! ");
    	}
     
    }

    Malheureusement et sauf erreur de ma part il n'y a aucun moyen "propre" de récupérer cet encoding...


    a++

Discussions similaires

  1. Réponses: 11
    Dernier message: 03/04/2012, 16h48
  2. Problème de compilateur en ligne de commande
    Par momo31000 dans le forum EDI
    Réponses: 9
    Dernier message: 05/02/2008, 16h23
  3. Problème d'accent en ligne de commande
    Par fabrice.77 dans le forum Outils
    Réponses: 1
    Dernier message: 13/02/2007, 10h15
  4. Lancer une commande (type ligne de commande) depuis programme Java
    Par rprom1 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 15/12/2006, 12h06
  5. 7-Zip - Problème de décompression en ligne de commande
    Par Lorponos dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/07/2006, 15h07

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