[JVM] Problème d'encodage Java

Applications, problèmes de configuration réseau
Répondre
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

[JVM] Problème d'encodage Java

Message par arch.mick »

Bonsoir,
J'ai un petit soucis lorsque je programme en Java et que je compile, le code ne passe pas si il y a un caractère du type "é" ou "è".
Je pensais que c'étais une généralités liés a java mais sur une autre machine je n'ai pas eu de soucis.
Je me suis donc dis qu'il manquais certainement un petit "plus" a installer.
Auriez-vous une idée ?
Cordialement.
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [JVM] Problème d'encodage Java

Message par jaco »

Quel encodage utilises-tu pour ton fichier source ?
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

Comment puis-je le voir ?
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [JVM] Problème d'encodage Java

Message par jaco »

Normalement, ça doit être dans le menu fichier... Enfin, ça dépend de ton éditeur de texte, évidemment, mais en faisant "sauver sous", généralement, tu vois l'encodage utilisé.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [JVM] Problème d'encodage Java

Message par FoolEcho »

Pour le savoir, tu peux aussi lancer file sur l'un des fichiers qui contient du code non ascii.

Après c'est à toi de voir... changer l'encodage des sources (si c'est un truc perso) ou compiler avec l'encodage adéquat (dépend de comment tu compiles: préférences sur le projet dans eclipse/netbeans ou javac -encoding <encodage utilisé par les sources>).
«The following statement is not true. The previous statement is true.» :nage:
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

Le problème vient du fait que dans mon Emacs il utilise un encodage ASCII et que moi je voudrais un encodage ISO-8859 (si je ne me trompe pas).
Est-ce bien cela ?
Si oui comment le changé ? merci d'avance
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [JVM] Problème d'encodage Java

Message par jaco »

Je pense que tu aurais plutôt intérêt à utiliser l'encodage UTF-8... Pour Emacs, ça fait trop longtemps que je ne l'utilise plus donc je ne me souviens plus de la manip, désolé :(
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [JVM] Problème d'encodage Java

Message par FoolEcho »

Pareil, je te conseille utf-8.
Et pour Emacs, tu vas dans Options > Mule (Multilingual Environment) > Set coding systems > for saving this buffer et là tu choisis ton encodage (tu as le complétement avec TAB ;-) ). 8)

Mais si tu as beaucoup de fichiers, ça peut être rébarbatif, tu peux utiliser iconv pour réencoder tes fichiers. :chinois: (voir par exemple, la doc Gentoo (exemple n°3): http://www.gentoo.org/doc/fr/utf-8.xml#doc_chap3 )
«The following statement is not true. The previous statement is true.» :nage:
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

Je suis quelque peut égaré car cela à semblé marcher mais ne marche plus.
Je m'explique j'ai réussi a passer 3 fichier(s) .c en utf-8, je n'ai pas réussi a passer mes fichier java en utf-8 et puis maintenant tout les nouveaux fichier sont enregistrés en ASCII...
Pas moyen de les passé en utf-8 que ce soit avec emacs ou avec l'exemple sur le site de gentoo...
Comment faire pour que emacs me mette par défaut en utf-8 ?
Et surtout comment faire pour que tout mes autre fichier sois en utf-8 ?
Merci d'avance

edit : même avec bluefish ou autre mes fichier sont de base en ASCII
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [JVM] Problème d'encodage Java

Message par jaco »

De mémoire, doit falloir mettre la règle qui va bien dans ton fichier .emacs (ou .emacs.el)...

Tu utilises quoi, comme locale ?

Je ne sais pas si ça influe sur le comportement de tes éditeurs mais, chez moi :

Code : Tout sélectionner

[Iggy ~]% locale
LANG=fr_FR.utf8
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [JVM] Problème d'encodage Java

Message par FoolEcho »

arch.mick a écrit :Comment faire pour que emacs me mette par défaut en utf-8 ?
Si l'encodage de ton système/utilisateur est en utf-8, emacs devrait suivre... Sinon tu modifies "set language environment" (toujours dans Mule).
Quand tu écris dans le scratch ou que tu ouvres un nouveau fichier, tu es en quoi par rapport à ton système (l'encodage est spécifié dans le coin en bas à gauche, par exemple "U" pour unicode) ?

S'ils sont en ascii, c'est qu'ils ont été enregistré ainsi (ils ont pu l'être car il n'y avait pas d'accents ou autre). iconv peut te les convertir quand même (il faut changer le -f bien sûr).
«The following statement is not true. The previous statement is true.» :nage:
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

jaco a écrit :De mémoire, doit falloir mettre la règle qui va bien dans ton fichier .emacs (ou .emacs.el)...

Tu utilises quoi, comme locale ?

Je ne sais pas si ça influe sur le comportement de tes éditeurs mais, chez moi :

Code : Tout sélectionner

[Iggy ~]% locale
LANG=fr_FR.utf8
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=

Code : Tout sélectionner

[mick@dell-studio ~]$ locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
FoolEcho a écrit :
arch.mick a écrit :Comment faire pour que emacs me mette par défaut en utf-8 ?
Si l'encodage de ton système/utilisateur est en utf-8, emacs devrait suivre... Sinon tu modifies "set language environment" (toujours dans Mule).
Quand tu écris dans le scratch ou que tu ouvres un nouveau fichier, tu es en quoi par rapport à ton système (l'encodage est spécifié dans le coin en bas à gauche, par exemple "U" pour unicode) ?

S'ils sont en ascii, c'est qu'ils ont été enregistré ainsi (ils ont pu l'être car il n'y avait pas d'accents ou autre). iconv peut te les convertir quand même (il faut changer le -f bien sûr).
Je n'arive pas à utiliser iconv avec ascii sa ne passe pas en utf-8 :?
Et j'ai bien un U en bas à gauche
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [JVM] Problème d'encodage Java

Message par FoolEcho »

S'il y a des caractères non-ascii dans ton source, ben... ça ne peut pas être de l'ascii et enregistré comme tel (sinon la conversion doit fonctionner). Que renvoie file tonfichier et quelle commande iconv tu lui appliques ?
FoolEcho a écrit :Et j'ai bien un U en bas à gauche
Donc tu es bien en unicode, suivant logiquement ta locale.
Quand tu ouvres le source que tu veux convertir, il t'affiche quoi ? (si "--" alors pur ascii ; si "1" alors latin1/iso8859-1)
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
jaco
Chu Ko Nu
Messages : 344
Inscription : ven. 18 mars 2011, 23:42
Localisation : Toulouse, France

Re: [JVM] Problème d'encodage Java

Message par jaco »

Quand tu dis que "ton code ne passe pas quand il y a un é", ça veut dire quoi exactement ?
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

FoolEcho a écrit :S'il y a des caractères non-ascii dans ton source, ben... ça ne peut pas être de l'ascii et enregistré comme tel (sinon la conversion doit fonctionner). Que renvoie file tonfichier et quelle commande iconv tu lui appliques ?
FoolEcho a écrit :Et j'ai bien un U en bas à gauche
Donc tu es bien en unicode, suivant logiquement ta locale.
Quand tu ouvres le source que tu veux convertir, il t'affiche quoi ? (si "--" alors pur ascii ; si "1" alors latin1/iso8859-1)
Quand j'ouvre mon code source j'ai "--"
file mon fichier me retourne ASCII text (ou parfois ASCII C++ pour du java :? )
j'utilise iconv -f ascii -t utf-8 fichier_base > fichier_transformé
jaco a écrit :Quand tu dis que "ton code ne passe pas quand il y a un é", ça veut dire quoi exactement ?
Cela veut dire que je n'aurais pas les caractère accentués mais quelque chose d'autre a la place et qui est incompréhensible...
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [JVM] Problème d'encodage Java

Message par FoolEcho »

arch.mick a écrit :Quand j'ouvre mon code source j'ai "--"
file mon fichier me retourne ASCII text (ou parfois ASCII C++ pour du java :? )
j'utilise iconv -f ascii -t utf-8 fichier_base > fichier_transformé
Et ? Tu as un message d'erreur ? Quand tu ouvres ton fichier transformé avec emacs, il t'indique quoi ?
arch.mick a écrit :Cela veut dire que je n'aurais pas les caractère accentués mais quelque chose d'autre a la place et qui est incompréhensible...
Quand tu ouvres un fichier avec des accents (non transformé donc), emacs ne reconnaît pas l'encodage ?
«The following statement is not true. The previous statement is true.» :nage:
arch.mick
Daikyu
Messages : 97
Inscription : mar. 22 févr. 2011, 16:22

Re: [JVM] Problème d'encodage Java

Message par arch.mick »

Je n'ai aucun message d'erreur mais la sorti de file monfichier ne change pas malheureusement...
Et lorsque j'ouvre le fichier emacs le détecte correctement car quand j'ai des fichiers (anciens) encodé en utf-8 il reconnait que c'est de l'utf-8 et affiche les accents et pour les autres il détecte que c'est du ASCII et donc pas d'accent.
Répondre