# [LOCALES]  UTF-8 (presque résolu (menuconfig))

## legabier

Bonjour,

J'ai installé Gentoo sur deux machines. Pas de X.

Dans les deux cas j'ai mis unicode et utf8 dans ma USE.

Dans les deux cas j'ai mis fr_CA.UTF-8 UTF-8 dans /etc/locale.gen et fait locale-gen comme indiqué dans le manuel d'installation.

Les accents sont problématiques, par exemple, quand j'écris un accent en ligne de commande, ça fait en sorte que je peux faire deux backspace pour chaque caractère accentué. Si j'écris plusieurs éééé et que je fais backspace plusieurs fois, je peux effacer mon prompt! Dans nano c'est problématique, l'affichage est tout démoli quand je tape des accents et tente de les effacer.

Aussi, lorsque je transfère des fichiers avec des accents dans le nom, les accents sont remplacé par ?? quand je fais un ls.

J'utilise bien UTF-8 avec mes clients ssh et sftp, c'est les machines qui ne semblent pas être réellement configurées en utf-8.

Par exemple, lorsque je tape locale, les deux machine me retournent ceci:

```
LANG=

LC_CTYPE="POSIX"

LC_NUMERIC="POSIX"

LC_TIME="POSIX"

LC_COLLATE="POSIX"

LC_MONETARY="POSIX"

LC_MESSAGES="POSIX"

LC_PAPER="POSIX"

LC_NAME="POSIX"

LC_ADDRESS="POSIX"

LC_TELEPHONE="POSIX"

LC_MEASUREMENT="POSIX"

LC_IDENTIFICATION="POSIX"

LC_ALL=
```

Question complémentaire: Quand je serai vraiment en UTF-8, est-ce que les fichiers, transférés avant avec WinSCP configuré avec UTF-8 à On alors que le système ne l'était pas, seront corrompus? Est-ce que ça a affecté uniquement le nom des fichiers ou aussi leur contenu?

Merci !

----------

## legabier

Si j'ai bien compris (http://gentoo-wiki.com/HOWTO_Make_your_system_use_unicode/utf-8), la documentation d'installation ne dit pas tout.

Il me manquait quelques trucs, comme nls dans ma USE, charger le module nls_utf8, créer un /etc/env.d/02locale et toute la section Console setup, à moins que ça ne s'adresse pas aux connexion par ssh?

ÉDIT

Tiré de /proc/config.gz:

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="iso8859-1"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_ASCII=y

CONFIG_NLS_ISO8859_1=y

CONFIG_NLS_ISO8859_15=y

CONFIG_NLS_UTF8=y

----------

## legabier

```
# echo "LANG=\"fr_CA.UTF-8\"" > /etc/env.d/02locale

# env-update

# source /etc/profile

```

La commande locale m'affichement maintenant

```
LANG=fr_CA.UTF-8

LC_CTYPE="fr_CA.UTF-8"

LC_NUMERIC="fr_CA.UTF-8"

LC_TIME="fr_CA.UTF-8"

LC_COLLATE="fr_CA.UTF-8"

LC_MONETARY="fr_CA.UTF-8"

LC_MESSAGES="fr_CA.UTF-8"

LC_PAPER="fr_CA.UTF-8"

LC_NAME="fr_CA.UTF-8"

LC_ADDRESS="fr_CA.UTF-8"

LC_TELEPHONE="fr_CA.UTF-8"

LC_MEASUREMENT="fr_CA.UTF-8"

LC_IDENTIFICATION="fr_CA.UTF-8"

LC_ALL=
```

À partir de là, je peux correctement effacer les accents avec backspace (fini les double backspace) et les accents des noms de fichiers s'affichent presque tous correctement (ex. é s'affiche correctement alors que Æ affiche plutot ▒)

Je poursuis donc :

```
cd /usr/src/linux ; make menuconfig
```

Je vais dans

```
File systems --->

 Native Language Support --->
```

j'ai déjà <*>   NLS UTF8 comme mentionné dans mon précédent message mais je redéfinie 

```
   (iso8859-1) Default NLS Option
```

par

```
   (utf8) Default NLS Option
```

et refait le noyau au complet (make && make modules_install) puis la routine..: monter /boot, copier bzImage, grub-install, reboot... et au redémarrage tout semble parfait, je vois les Æ dans les noms de fichier.

Maintenant j'ajoute nls à ma USE et je fais un emerge --update --deep --newuse world et... rien à recompiler!

Par curiosité, je vais voir si un vieux problème gênant persiste. En effet, dans mon menuconfig, les cadres sont remplacés par des lettres (http://img146.imageshack.us/img146/489/menuconfig1zk8.jpg). Avec l'autre machine, je suis rendu moins loin dans les étapes, je n'ai pas encore refait le noyau, mon menuconfig est différent (http://img146.imageshack.us/img146/7543/menuconfig2ta7.jpg).

----------

## guilc

 *legabier wrote:*   

> Si j'ai bien compris (http://gentoo-wiki.com/HOWTO_Make_your_system_use_unicode/utf-8), la documentation d'installation ne dit pas tout.
> 
> Il me manquait quelques trucs, comme nls dans ma USE, charger le module nls_utf8, créer un /etc/env.d/02locale et toute la section Console setup, à moins que ça ne s'adresse pas aux connexion par ssh?
> 
> ÉDIT
> ...

 

A noter que ceci n'a d'impact que pour les partitions windows, pour le reste, cette section est inutile.

Après, dans cette page de wiki, il y a des trucs obsolètes (et inutiles), comme le script d'init unicode, les unicode_start, etc... tout ça ne sert a rien.

Le principal pour le switch, c'est unicode="yes" dans le rc.conf + une locale correcte + une consolefont qui gère l'utf8 + générer les locales utf8 (localegen donc, ce que tu as fait)

----------

## Bapt

juste comme ça, 

n'oublie pas le localdef, ça m'est arrivé une fois de l'oublié, et je me suis pris la tête pendant longtemps pour comprendre ce qu'il se passait.

```
localedef -c -f UTF-8 -i fr_FR fr_FR.UTF-8
```

----------

## legabier

Merci !

UNICODE="yes" était déjà présent sur mes deux machines dans /etc/rc.conf.

Quant à la commande localedef (localedef -c -f UTF-8 -i fr_CA fr_CA.UTF-8 dans mon cas), je ne l'avais pas encore fait, ce n'est pas mentionné dans la doc d'installation. C'est maintenant fait, sans trop savoir ce qui a été modifié, en tout cas la commande locale retourne toujours un bon résultat (tout à fr_CA.UTF-8 sauf LC_ALL qui n'a rien), avant et après redémarrage. Justement, après avoir redémarré, j'ai été voir si menuconfig s'affichait correctement, mais non, toujours des lettres à la place des cadres.

Maintenant, à propos de consolefont, est-ce que ça affecte juste les tty ou aussi en ssh (je fais tout en ssh)?

En ce moment, mon fichier /etc/conf.d/consolefont n'a rien, c'est-à-dire que les deux seules options sont désactivées (#):

#CONSOLEFONT="default8x16"

#CONSOLETRANSLATION="8859-1_to_uni"

----------

## yoyo

À noter qu'il existe des docs officielles pour tout ça (à préférer à ce qui existe dans les wikis) : 

Utiliser l'UTF-8 avec Gentoo

Guide de localisation de Gentoo Linux

La plupart des commandes/démarches/explications (localedef etc.) s'y trouvent.

Bonne lecture,

Enjoy !

----------

## Bapt

Concernant ton make menuconfig, est tu certains que ton terminal est UTF-8 aware ?

----------

## Temet

Tu veux qu'il utilise JCVterm ?  :Laughing: 

----------

## Bapt

Nan mais je dis ça car au vue de son post ça sent le putty a plein nez et putty de base n'est pas utf8 il faut le régler pour

----------

## legabier

 *Bapt wrote:*   

> putty de base n'est pas utf8 il faut le régler pour

 

Ma configuration de putty

J'avais configuré ça dès le départ, j'utilisais déjà putty sur d'autres machines en utf-8. Même chose avec WinSCP, l'option utf-8 à Auto par défaut, je l'avais mis à On. C'était précisément ça mon problème au départ, j'utilisais des clients en utf8 alors que je croyais que la machine l'était aussi.

----------

