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 :
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 :
System.setOut(new PrintStream(System.out, true, "ibm850"));
Partager