Page 1 sur 1
[JVM] Problème d'encodage Java
Publié : mar. 04 oct. 2011, 23:51
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.
Re: [JVM] Problème d'encodage Java
Publié : mer. 05 oct. 2011, 00:10
par jaco
Quel encodage utilises-tu pour ton fichier source ?
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 00:06
par arch.mick
Comment puis-je le voir ?
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 01:54
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é.
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 09:53
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>).
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 17:43
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
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 17:47
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é

Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 17:58
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

).
Mais si tu as beaucoup de fichiers, ça peut être rébarbatif, tu peux utiliser
iconv
pour réencoder tes fichiers.

(voir par exemple, la doc Gentoo (exemple n°3):
http://www.gentoo.org/doc/fr/utf-8.xml#doc_chap3 )
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 18:29
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
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 19:05
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=
Re: [JVM] Problème d'encodage Java
Publié : dim. 09 oct. 2011, 19:08
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).
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 17:14
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
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 17:34
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)
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 17:46
par jaco
Quand tu dis que "ton code ne passe pas quand il y a un é", ça veut dire quoi exactement ?
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 18:28
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...
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 18:46
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 ?
Re: [JVM] Problème d'encodage Java
Publié : lun. 10 oct. 2011, 18:49
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.