codage ssh et caractère


16

Quand je suis sshdans mon VPS, j'ai en irssicours d' exécution dans l'écran. Lorsque quelqu'un envoie un caractère Unicode (tel que © ou €), irssiaffiche les ordures lorsque je l'utilise via l'écran dans une sshsession. Si je me connecte à celui-ci à l' irssiaide du module proxy d'irssi, à partir d'irssi exécuté sur mon ordinateur local, il s'affiche correctement.

De même, si je lance ghci sur mon VPS (en dehors d'un écran) et que je saisis l'un de ces caractères, il se bloque.

Donc, évidemment, il y a un problème de codage de caractères avec ma connexion à mon VPS, soit dans ssh soit dans la configuration du système.

Comment puis-je trouver la cause de ce problème et le résoudre?

Détails:

Système client

  • Arch Linux x64
  • Encodage UTF-8

Système VPS

  • Serveur Ubuntu 10.04
  • Encodage inconnu utilisé. Comment trouver ça? (Je dois juste chercher dans mon /etc/rc.conf pour Arch)

Réponses:


18

L'exécution de la localecommande vous donnera des informations sur vos paramètres régionaux; l'encodage des caractères est donné par le LC_CTYPEparamètre.

Sous Ubuntu, les paramètres régionaux par défaut sont indiqués dans /etc/default/locale. Vous pouvez changer l'encodage des caractères en définissant LC_CTYPEvotre ~/.profilesur le VPS, par exemple

export LC_CTYPE=en_US.UTF-8

Vous devrez vous assurer que les en_US.UTF-8paramètres régionaux sont disponibles. Ubuntu génère uniquement des données de paramètres régionaux pour les paramètres régionaux demandés. Tous les paramètres régionaux en anglais doivent être disponibles si le package est language-pack-en-baseinstallé. Vous pouvez demander manuellement leur génération avec

sudo locale-gen en

Vous pouvez également ajouter des entrées pour /var/lib/locales/supported.d/localvous assurer qu'un environnement local particulier est installé (par exemple, ajouter la ligne en_US.UTF-8 UTF-8).


3

en fait, la valeur donnée dans LC_CTYPE est un nom de locale . Il est habituel, mais pas obligatoire, que le codage du jeu de caractères soit dans le nom.

Mais si vous voulez connaître, à coup sûr, le jeu de caractères, alors la commande est locale -k charmap.

~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"

(notez comment le jeu de caractères n'apparaît pas sur les valeurs LC_TYPE ci-dessus).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.