ssh и кодировка символов

Когда я вхожу в мой VPS, у меня работает irssi на экране. Когда кто-то отправляет символ юникода (например, © или €), irssi отображает мусор, когда я использую его через экран в сеансе ssh . Если я подключусь к этому irssi используя прокси-модуль irssi, от irssi, запущенного на моем локальном компьютере, он отображается правильно.

Аналогично, если я запускаю ghci на своем VPS (вне экрана) и вхожу в один из этих символов, он сбой.

Итак, очевидно, что есть некоторая проблема кодирования символов с моим подключением к моему VPS, либо в ssh, либо в настройке системы.

Как я могу узнать, что вызывает это, и решить его?

Детали:

Клиентская система

  • Arch Linux x64
  • Кодировка UTF-8

Система VPS

  • Сервер Ubuntu 10.04
  • Используется неизвестная кодировка. Как мне это найти? (Мне просто нужно посмотреть в моем /etc/rc.conf для Arch)

  • SSH на несколько серверов, выполняющих несколько команд
  • ssh key_load_public: предупреждение о недопустимом формате
  • Использование конфигурации PAM и конфигурации SSHD вместе
  • Конфигурация iptables ssh через VPN
  • SFTP через обратный SSH-туннель?
  • Как запустить скрипт после подключения к ssh
  • Как получить правильный MAC-адрес из команды ARP?
  • Получение no tty присутствует и не запрашивать программу, указанную при использовании git over ssh
  • 2 Solutions collect form web for “ssh и кодировка символов”

    Запуск команды locale даст вам информацию о ваших настройках локали; кодировка символов задается установкой LC_CTYPE .

    В Ubuntu настройки локали по умолчанию задаются в /etc/default/locale . Вы можете изменить кодировку символов, установив LC_CTYPE в свой файл ~/.profile на VPS, например

     export LC_CTYPE=en_US.UTF-8 

    Вы должны убедиться, что en_US.UTF-8 доступна. Ubuntu генерирует только локальные данные для запрошенных локалей. Все английские локали должны быть доступны, если у вас установлен пакет language-pack-en-base . Вы можете вручную запросить свое поколение с помощью

     sudo locale-gen en 

    Вы также можете добавить записи в /var/lib/locales/supported.d/local чтобы убедиться, что определен определенный языковой стандарт (например, добавьте строку en_US.UTF-8 UTF-8 ).

    в действительности значение, указанное в LC_CTYPE, является именем локали. Обычно, но не требуется, что кодировка кодировки должна быть в имени.

    Но если вы хотите, конечно, знать кодировку, тогда команда 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" 

    (обратите внимание, как кодировка не отображается в значениях LC_TYPE выше).

    Linux и Unix - лучшая ОС в мире.