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

Eclipse Java Discussion :

Compiler sous linux en UTF-8 avec Eclipse et obtenir un charset CP1252 sous Windows ?


Sujet :

Eclipse Java

  1. #1
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut Compiler sous linux en UTF-8 avec Eclipse et obtenir un charset CP1252 sous Windows ?
    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...

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


    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...

    Essayes de vérifier cela en utilisant le paramètre -Dfile.encoding=cp850 pour forcer l'utilisation du 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		String str = "Je préfère Linux pour compiler";
    		JOptionPane.showMessageDialog(null, str);
    a++

  3. #3
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut
    Un grand merci pour l'explication simple et complète, ainsi que pour la solution qui fonctionne parfaitement avec l'option -Dfile.encoding=cp850

  4. #4
    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
    Citation Envoyé par sjachym Voir le message
    Un grand merci pour l'explication simple et complète, ainsi que pour la solution qui fonctionne parfaitement avec l'option -Dfile.encoding=cp850
    Attention toutefois car cela consiste à remplacer l'encodage par défaut.
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	System.setOut(new PrintStream(System.out, true, "cp850"));
    	System.setErr(new PrintStream(System.err, true, "cp850"));
    Ou utiliser la nouvelle classe Console de java 1.6...


    a++

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

Discussions similaires

  1. Problème d'envoi de fax sous Linux CentOS 5.4 avec AvantFAX et HylaFAX
    Par Kiyoshi_Aiko dans le forum RedHat / CentOS / Fedora
    Réponses: 3
    Dernier message: 03/02/2011, 14h59
  2. Obtenir la mémoire libre sous LINUX
    Par uriotcea dans le forum Linux
    Réponses: 7
    Dernier message: 24/02/2007, 08h51
  3. [Kylix] Compiler FMA
    Par dodik dans le forum EDI
    Réponses: 1
    Dernier message: 17/01/2005, 10h51
  4. [JavaComm]Pb avec l'execution d'un code natif sous linux
    Par seb31 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 02/06/2004, 14h25
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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