Как мне подключиться от клиента utf-8 к серверу latin1 через ssh?

1962
troelskn

У меня новая версия Ubuntu, и я хочу подключиться через ssh в gnome-терминал. Сервер использует latin1 (все файлы и т.д. являются latin1), поэтому я хочу использовать это в сеансе. Я изменил кодировку в опции меню, чтобы символы правильно выводились на мой экран, но я не могу правильно ввести не-ascii. Должен ли я передать некоторые магические аргументы в ssh или в gnome-терминал есть настройка, или я должен использовать stty? Я немного растерялся.

Обновить:

ХОРОШО. Теперь я немного сузил проблему. Если я запускаю следующее в командной строке:

php -r 'while ($c = fread(STDIN, 1)) { echo $c; }' 

И нажмите не-ASCII ключ, он правильно эхом. Однако, если я наберу тот же ключ в оболочке, ничего не произойдет. Так что это должна быть какая-то настройка в среде оболочки (настройка локали?). Есть идеи?

2

2 ответа на вопрос

3
Vebjorn Ljosa

Скорее всего, проблема связана с readline, который использует bash. Поместите следующее в /etc/inputrcили ~/.inputrc:

set meta-flag on set output-meta on set convert-meta off 

meta-flagвключает восьмибитный ввод (то есть он не очищает восьмой бит в символах, которые он читает), независимо от того, что терминал утверждает, что он может поддерживать. output-metaвключит отображение символов с восьмым установленным битом напрямую, а не как мета-префикс с escape-последовательностью. Когда convert-metaон включен, readline преобразует символы с восьмым битом, установленным в последовательность клавиш ASCII, удаляя восьмой бит и добавляя к нему префикс с помощью escape-символа (по сути, используя escape в качестве мета-префикса). Мы выключаем это. Есть ли man readlineдля получения дополнительной информации об этих и других переменных.

Ухххх .. Вот и все. Большое спасибо - Это преследует меня уже несколько недель. troelskn 14 лет назад 0
2
Vebjorn Ljosa

Вы можете изменить кодировку в Terminal-> Encoding в меню в gnome-терминал. Добавьте западную (ISO 8859-1) кодировку, затем переключитесь на нее.

Это меняет отображение (вывод), но не ввод. Я вижу правильные символы, но если я нажимаю клавишу с не-ascii символами, это ведет себя странно. troelskn 14 лет назад 0
troelskn, у меня работает как ввод, так и вывод. Моя версия gnome-терминала - 2.22.3. Vebjorn Ljosa 14 лет назад 0
Спасибо, но проблема, похоже, как-то связана с удаленной оболочкой. Я обновил свой вопрос. troelskn 14 лет назад 0

Похожие вопросы