|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 85 ![]() |
Bonjour, je compile un programme sous linux contenant des accents :
String str = "Je préfère Linux pour compiler"; System.out.println(str); Lancé sur depuis une console UTF-8 sur Linux il me retourne ma string en UTF-8 Mais sous Windows, les accents sont corrompus, dans le genre "Je prérère Linux pour compiler" Est t'il possible de gérer correctement le jeu de caractère pour les 2 systèmes ? Ou même simplement de compiler depuis linux à destination d'un jeu de caractère windows ? J'ai essayer d'encoder mon fichier en windows, mais le "Text file encoding" depuis Linux propose seulement : ISO-8859-1 US-ASCII UTF-16 UTF-16BE UTF-16LE UTF-8 Mais pas le CP1252 de Windows... |
|
|
00
|
|
|
#2 | ||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Salut,
Le problème ne vient pas de l'encodage de tes fichiers sources ! En effet une fois compilé toutes les Strings sont stockées en UTF-16... Donc tu peux très bien utiliser n'importe quel encodage dans tes fichiers sources, du moment que le bon encodage est utilisé lors de la compilation. En fait le problème vient du fait que sous Windows la console n'utilise pas vraiment du cp1252 mais du cp850 (enfin sur les Windows français en tout cas). Or Java utilise l'encage par défaut du système et encode tout en cp1252 qui est incompatible avec le cp850... Sinon pour vérifier que ton fichier class est bien compilé, tu peux simplement utiliser les composants Swing qui afficheront le texte correctement : Code :
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 85 ![]() |
Un grand merci pour l'explication simple et complète, ainsi que pour la solution qui fonctionne parfaitement avec l'option -Dfile.encoding=cp850
|
|
|
00
|
|
|
#4 | |||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
Si tu lis/écris des fichiers sans préciser l'encodage c'est le cp850 qui sera utilisé ! A la rigueur tu peux faire changer l'encodage de la sortie par code seulement : Code :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com