#1 Le 20/05/2011, à 18:37
- Fanascom
Problème de la langue de la console (LC n'accepte pas les accents)
Bonjour,
Mon serveur n’accepte pas les accents. J’ai essayé de lui changer la langue par les commandes adéquate mais sans succès.
Apparemment il est configuré en Anglais et n’accepte pas d’autres langues ?!
Prière de m’aider à résoudre ce problème
Hors ligne
#2 Le 20/05/2011, à 20:01
- pode
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Que donne le résultat de la commande suivante ?
$ locale -a
A priori, tu ne devrais pas avoir de ligne commençant par fr
Que donne le résultat de la commande suivante ?
$ ls /usr/share/i18n/locales/
Si tu as fr_FR, tu dois pouvoir installer la locale fr_FR.UTF8 :
$ sudo localedef -i fr_FR -f UTF8 fr_FR.UTF8
Et la commande suivante ?
$ cat /etc/environment
Hors ligne
#3 Le 20/05/2011, à 21:55
- Fanascom
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Voici les réponse que j'ai reçu:
root@30351hd39054:~# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
fr_FR.iso885915@euro
fr_FR@euro
root@30351hd39054:~#cat /etc/environment
LANGUAGE=fr
root@30351hd39054:~# ls /usr/share/i18n/locales/
POSIX en_GB hu_HU sa_IN
aa_DJ en_HK hy_AM sc_IT
aa_ER en_IE i18n sd_IN
aa_ER@saaho en_IE@euro ia sd_IN@devanagari
aa_ET en_IN id_ID se_NO
af_ZA en_NG ig_NG shs_CA
am_ET en_NZ ik_CA si_LK
an_ES en_PH is_IS sid_ET
ar_AE en_SG iso14651_t1 sk_SK
ar_BH en_US iso14651_t1_common sl_SI
ar_DZ en_ZA iso14651_t1_pinyin so_DJ
ar_EG en_ZW it_CH so_ET
ar_IN eo it_IT so_KE
ar_IQ es_AR it_IT@euro so_SO
ar_JO es_BO iu_CA sq_AL
ar_KW es_CL iw_IL sr_ME
ar_LB es_CO ja_JP sr_RS
ar_LY es_CR ka_GE sr_RS@latin
ar_MA es_DO kk_KZ ss_ZA
ar_OM es_EC kl_GL st_ZA
ar_QA es_ES km_KH sv_FI
ar_SA es_ES@euro kn_IN sv_FI@euro
ar_SD es_GT ko_KR sv_SE
ar_SY es_HN ks_IN ta_IN
ar_TN es_MX ks_IN@devanagari te_IN
ar_YE es_NI ku_TR tg_TJ
as_IN es_PA kw_GB th_TH
ast_ES es_PE ky_KG ti_ER
az_AZ es_PR lg_UG ti_ET
be_BY es_PY li_BE tig_ER
be_BY@latin es_SV li_NL tk_TM
ber_DZ es_US lo_LA tl_PH
ber_MA es_UY lt_LT tn_ZA
bg_BG es_VE lv_LV tr_CY
bn_BD et_EE mai_IN tr_TR
bn_IN eu_ES mg_MG translit_circle
bo_CN eu_ES@euro mi_NZ translit_cjk_compat
bo_IN eu_FR mk_MK translit_cjk_variants
br_FR eu_FR@euro ml_IN translit_combining
br_FR@euro fa_IR mn_MN translit_compat
bs_BA fi_FI mr_IN translit_font
byn_ER fi_FI@euro ms_MY translit_fraction
ca_AD fil_PH mt_MT translit_hangul
ca_ES fo_FO my_MM translit_narrow
ca_ES@euro fr_BE nan_TW@latin translit_neutral
ca_ES@valencia fr_BE@euro nb_NO translit_small
ca_FR fr_CA nds_DE translit_wide
ca_IT fr_CH nds_NL ts_ZA
crh_UA fr_FR ne_NP tt_RU
cs_CZ fr_FR@euro nl_AW tt_RU@iqtelif
csb_PL fr_LU nl_BE ug_CN
cy_GB fr_LU@euro nl_BE@euro uk_UA
da_DK fur_IT nl_NL ur_IN
de_AT fy_DE nl_NL@euro ur_PK
de_AT@euro fy_NL nn_NO uz_UZ
de_BE ga_IE nr_ZA uz_UZ@cyrillic
de_BE@euro ga_IE@euro nso_ZA ve_ZA
de_CH gd_GB oc_FR vi_VN
de_DE gez_ER om_ET wa_BE
de_DE@euro gez_ER@abegede om_KE wa_BE@euro
de_LI gez_ET or_IN wal_ET
de_LU gez_ET@abegede pa_IN wo_SN
de_LU@euro gl_ES pa_PK xh_ZA
dv_MV gl_ES@euro pap_AN yi_US
dz_BT gu_IN pl_PL yo_NG
el_CY gv_GB ps_AF zh_CN
el_GR ha_NG pt_BR zh_HK
el_GR@euro he_IL pt_PT zh_SG
en_AG hi_IN pt_PT@euro zh_TW
en_AU hne_IN ro_RO zu_ZA
en_BW hr_HR ru_RU
en_CA hsb_DE ru_UA
en_DK ht_HT rw_RW
Hors ligne
#4 Le 21/05/2011, à 07:18
- pode
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Et dans le répertoire /usr/share/i18n/charmaps ?
$ ls /usr/share/i18n/charmaps
Si tu as le fichier UTF-8.gz, tu dois pouvoir appliquer la commande localedef qui installera la locale fr_FR.UTF8, puis relancer la commande locale -a, pour vérifier que la locale a bien été installée (ligne fr_FR.utf8 supplémentaire)
Hors ligne
#5 Le 21/05/2011, à 16:22
- Fanascom
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Même si j'ai le fichier UTF-8.gz qui s'affiche, la commande n'a pas donnée d'effet (voir ci-dessous). Je pense que les 3 première lignes de la commande locale -a doivent avoir une signification particulière (ça a l'air d'etre une anomalie).
root@30351hd39054:~# localedef -i fr_FR -f UTF8 fr_FR.UTF8
character map file `UTF8' not found: No such file or directory
no output file produced because warnings were issued
root@30351hd39054:~# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
fr_FR.iso885915@euro
fr_FR@euro
root@30351hd39054:~#
Hors ligne
#6 Le 21/05/2011, à 16:59
- pode
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Il y avait une erreur dans la syntaxe que j'ai donnée. C'est plutôt UTF-8 (avec un tiret).
$ sudo localedef -i fr_FR -f UTF-8 fr_FR.UTF8
Au fait, que renvoie la commande suivante ?
$ locale
Sinon, tu as déjà la locale fr_FR.iso885915@euro d'installer. Tu peux donc déjà gérer les caractères spéciaux prévus dans l'encodage ISO-8859-15 (c'était le standard sur les postes Linux il y a quelques années, avant que le nouveau standards ne devienne UTF-8).
Hors ligne
#7 Le 21/05/2011, à 17:43
- Fanascom
Re : Problème de la langue de la console (LC n'accepte pas les accents)
J'ai tapé la commande avec la bonne syntaxe, maintenant il y a une différence c'est que, quand je tappe une accent la console la remplace par un point . Pour la commande locale voici ci dessous ce que ça donne. Si vous êtes disponible, on peut entrer en session teamviewer
root@30351hd39054:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=
LANGUAGE=fr
LC_CTYPE="fr_FR.ISO-8859-15"
LC_NUMERIC="fr_FR.ISO-8859-15"
LC_TIME="fr_FR.ISO-8859-15"
LC_COLLATE="fr_FR.ISO-8859-15"
LC_MONETARY="fr_FR.ISO-8859-15"
LC_MESSAGES="fr_FR.ISO-8859-15"
LC_PAPER="fr_FR.ISO-8859-15"
LC_NAME="fr_FR.ISO-8859-15"
LC_ADDRESS="fr_FR.ISO-8859-15"
LC_TELEPHONE="fr_FR.ISO-8859-15"
LC_MEASUREMENT="fr_FR.ISO-8859-15"
LC_IDENTIFICATION="fr_FR.ISO-8859-15"
LC_ALL=fr_FR.ISO-8859-15
Hors ligne
#8 Le 21/05/2011, à 18:43
- FRUiT
Re : Problème de la langue de la console (LC n'accepte pas les accents)
LANGUAGE=fr
Là c'est pas bon ça devrait être soit fr_FR, soit fr_FR.UTF-8. Mais de toute façon cette variable ne devrait pas être assignée, vire la ligne de /etc/environment.
Et à la place écris :
LC_ALL=
Juste pour voir si c'est mieux.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#9 Le 21/05/2011, à 18:44
- pode
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Si vous êtes disponible, on peut entrer en session teamviewer
Je ne suis pas sûr de trouver la réponse à ton problème, d'autres pourraient avoir plus d'idées.
Et il faudrait que je sois root. Pas top...
root@30351hd39054:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
[...]
LC_CTYPE="fr_FR.ISO-8859-15"
LC_MESSAGES="fr_FR.ISO-8859-15"
LC_ALL=fr_FR.ISO-8859-15
Les messages "Cannot set..." sont étranges. As-tu le fichier suivant ?
$ ls /usr/share/i18n/charmaps/ISO-8859-15.gz
Si tu veux pouvoir utiliser la locale fr_FR.ISO885915, il faut l'installer :
$ sudo localedef -i fr_FR -f ISO-8859-15 fr_FR.ISO885915
root@30351hd39054:~# locale
[...]
LANG=
Ça, c'est pas bon. Sans variable LANG définie, les logiciels qui utilisent cette variable utiliseront la valeur par défaut : C (i.e. l'encodage ASCII)
C'est vrai que du commentaire 3, on avait :
root@30351hd39054:~#cat /etc/environment
LANGUAGE=fr
C'est pas bon non plus, pour un serveur Ubuntu. Moi, j'ai :
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="fr_FR.UTF-8"
Essaie de mettre la même chose, reboote ton serveur et regarde ce que renvoie la commande locale.
Chez moi, ça donne :
$ locale
LANG=fr_FR.UTF-8
LANGUAGE=fr_FR:en
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=
Hors ligne
#10 Le 22/05/2011, à 19:16
- Fanascom
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Merci pour vos réponses constructives.
Pour le problème d'accent sur saisi, c'étais un problème lié à mon logiciel ssh Putty, il étais configuré en ISO, je l'ai mis en UTF8 et ça a très bien marché. Maintenant je peux saisir des accents et uploadé des fichiers dont le nom contient des accents sans soucis.
Par contre, au niveau des commandes man et des enregistrement dans mes bases de données (enregistrés en UTF-8), les accents ne s'affiche tjrs pas! apperemment c'est tjrs un Pb du système.
Maintenant voici ce que j'ai comme réponses aux commandes (je crois que c'est beaucoup mieu qu'avant)
root@30351hd39054:~# locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LC_NAME="fr_FR@euro"
LC_ADDRESS="fr_FR@euro"
LC_TELEPHONE="fr_FR@euro"
LC_MEASUREMENT="fr_FR@euro"
LC_IDENTIFICATION="fr_FR@euro"
LC_ALL=fr_FR@euro
root@30351hd39054:~# locale -a
C
franأais
french
fr_FR
fr_FR@euro
fr_FR.iso88591
fr_FR.iso885915@euro
fr_FR.utf8
POSIX
root@30351hd39054:~# cat /etc/environment
LANG="fr_FR.UTF-8"
LC_ALL=
Hors ligne
#11 Le 22/05/2011, à 19:37
- pode
Re : Problème de la langue de la console (LC n'accepte pas les accents)
root@30351hd39054:~# locale -a
[...]
franأais
french
[...]
Jamais vu ça. C'est bizarre...
root@30351hd39054:~# locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LC_NAME="fr_FR@euro"
LC_ADDRESS="fr_FR@euro"
LC_TELEPHONE="fr_FR@euro"
LC_MEASUREMENT="fr_FR@euro"
LC_IDENTIFICATION="fr_FR@euro"
LC_ALL=fr_FR@euro
La variable LANG est bonne mais pas les autres.
Si tes logiciels utilisent les autres variables (typiquement, LC_CTYPE est souvent utilisée ; un peu aussi LC_COLLATE pour les tris ; peut-être aussi LC_TIME pour l'affichage des dates), ils ne marcheront pas bien s'ils manipulent des données en UTF-8.
Le fait que LC_ALL ait une valeur peut aussi avoir des effets de bords : Variables d'environnement sous Ubuntu.
Peut-être que le fait d'avoir mis
LC_ALL=
dans le fichier /etc/environnement a eu cet effet ?
Que se passe t-il (résultat de la commande locale) en supprimant cette ligne du fichier /etc/environnement et en rebootant ?
Hors ligne
#12 Le 23/05/2011, à 11:26
- Fanascom
Re : Problème de la langue de la console (LC n'accepte pas les accents)
Merci.
J'ai supprimé la ligne mais j'ai pas rebooté. J'ai vraiment peur de rebooter car je suis dans un environment de production (site web PHP/MySQL, Application Java/MySQL qui tourne) et je l'ai déjà fait une fois et ça m'a couté 2 jours pour remettre tout dans l'ordre.
Hors ligne