web-dev-qa-db-fra.com

SSH et codage de caractères

Quand je ssh dans mon VPS, j'ai irssi exécutant à l'écran. Lorsque quelqu'un envoie un caractère unicode (tel que © OR €), irssi affiche les ordures lorsque je l'utilise via l'écran dans une session ssh. Si je me connecte à ce numéro irssi Utilisation du module proxy d'IRSSI, de IRSSI en cours d'exécution sur mon ordinateur local, il apparaît correctement.

De même, si j'exécute GHCI sur mon VPS (en dehors d'un écran) et entrez dans l'un de ces personnages, il se bloque.

Donc, évidemment, il existe une question de codage de caractères d'une sorte avec ma connexion à mon VPS, en SSH ou dans la configuration du système.

Comment puis-je découvrir ce qui cause cela et la résolvez-vous?

Des détails:

Système client

  • Arch Linux x64
  • Encodage UTF-8

Système VPS

  • Ubuntu Server 10.04
  • Codage inconnu utilisé. Comment puis-je trouver ça? (Je dois juste regarder dans mon /etc/rc.conf pour arch)
17
Macha

Exécution de la commande locale vous donnera des informations sur vos paramètres locaux; Le codage du personnage est donné par le LC_CTYPE réglage.

Sous Ubuntu, les paramètres locaux par défaut sont donnés dans /etc/default/locale. Vous pouvez modifier le codage du personnage en définissant LC_CTYPE dans ton ~/.profile sur le VPS, par ex.

export LC_CTYPE=en_US.UTF-8

Vous devrez vous assurer que le en_US.UTF-8 locale est disponible. Ubuntu ne génère que des données locales pour les locaux demandés. Tous les locaux d'anglais doivent être disponibles si vous avez le package language-pack-en-base installée. Vous pouvez demander manuellement leur génération avec

Sudo locale-gen en

Vous pouvez également ajouter des entrées à /var/lib/locales/supported.d/local Pour vous assurer qu'un paramètre local particulier est installé (par exemple, ajoutez la ligne en_US.UTF-8 UTF-8).

actival La valeur donnée dans LC_CTYPE est une locale nom. Il est coutumier, mais non requis, que le codage Charset soit dans le nom.

Mais si vous voulez savoir, assurez-vous que le Charset, 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 charert n'apparaît pas sur les valeurs LC_TYPE ci-dessus).

4
Pablo Saratxaga