Difficulté de configuration de l'encodage

Bonjour à tous,

Je me permets de solliciter votre aide car je me bats depuis une semaine avec le problème d’encodage des caractères.

# cat /etc/debian_version
5.0
# uname -a
Linux tornado 2.6.18-xenU #3 SMP Tue Sep 8 15:57:00 CEST 2009 i686 GNU/Linux

Je ne peux pas accéder directement à mon serveur, qui est hébergé dans une salle blanche. Je me connecte dessus, via SSH, depuis une machine Windows, avec le client SSH Putty.

Je travaille sur Elgg. Je dois développer en utilisant l’encodage UTF-8. Je n’arrive pas à me dépatouiller.

J’ai lu un bon nombre d’articles qui traite du sujet. Et je comprends que je dois modifier la “configuration locale”.

Problème numéro 1 : configuration “locale”.

# locale
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=

Pour cela, il est conseillé d’utiliser la procédure suivante (forum.debian-fr.org/viewtopic.php?f=3&t=19748):

dpkg-reconfigure locales 

Cette commande est censée être interactive. Or, sur mon système, la commande n’affiche rien…

# dpkg-reconfigure locales
# echo $?
0

Question 1 : Ce comportement est-il normal? Faut-il effectuer une opération préalablement à l’exécution de la commande ci-dessus?

Problème numéro 2 : Configuration de Vim.

J’ai configuré Vim en suivant divers documents trouvés sur le WEB.

# cat /etc/vim/vimrc
...
" Activation de l'UTF-8
if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8
  setglobal fileencoding=utf-8
  set fileencodings=utf-8
endif
...

Mais, si j’édite un texte avec Vim, et que je contrôle l’encodage du fichier généré, je constate que l’encode est “ANSI”.

Question 2 : Ce problème est-il la conséquence de l’absence de configuration locale?

Je remercie toute personne qui pourrait m’aider.

A+

Salut,

Finalement, après une semaine de décantation, je crois que j’ai trouvé la procédure à suivre pour obtenir une configuration acceptable.

Configuration LINUX

Tout d’abord, il faut vérifier la liste des encodages disponibles :

# locale -a
C
POSIX

Il manque l’encodage requis. Pour l’ajouter ;

# localedef -f UTF-8 -i fr_FR fr_FR.UTF-8
# locale -a
C
POSIX
fr_FR.utf8

Maintenant, on peut configurer “locale” :

# export LANG="fr_FR.utf8"
# 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=

Pour information, la commande suivante reste désespérément muette. Quelqu’un a-t-il une explication?

# dpkg-reconfigure locales
# echo $?
0

Configuration PUTTY (Windows)

[Change settings…] => [Windows] => [Translation] => [Received data assumed to be in which character set] => “UTF-8”

[Change settings…] => [Terminal] => [Keyboard] => [The function keys and keypad] => “Linux”

Bon, ça marche! Mais je n’ai pas tout compris… Quelques explications seraient bienvenues.

A+

C’est probablement parce que debconf est configuré sur “high” voire “critical” par défaut sur ton système (surement dû à un preseed, car la valeur par défaut est censée être “medium”). C et POSIX sont natifs donc aucune locale n’est générée, ce qui expliquerait bien sûr pourquoi tu n’as absolument rien qui s’affiche mais une sortie avec succès.

C’est facilement verifiable en faisant:

# dpkg-reconfigure -plow locales

Salut!

Je te remercie pour les informations que tu apportes.

Cela dit la fameuse commande reste toujours muette.

# dpkg-reconfigure -plow locales
# echo $?
0

Mystère… Je n’ose pas faire trop d’expérimentations sur ce serveur car je tiens à conserver une bonne visibilité sur sa configuration : Je note scrupuleusement toutes les actions. Il me faudrait une machine “bac à sable” pour “sonder” le système, quitte à faire des bêtises…

A+

Pour mémoire :

Si vous utilisez l’outil “screen”, pensez à spécifier l’option “-U”.

# screen -U

A+