Como eu me conecto de um cliente utf-8 a um servidor latin1 por ssh?

2

Eu tenho uma nova instalação do Ubuntu e quero me conectar ao ssh em um terminal gnome. O servidor usa latin1 (todos os arquivos, etc., são latin1), portanto, quero usá-lo na sessão. Eu alterei o charset na opção de menu para que os caracteres sejam exibidos corretamente na minha tela, mas não posso inserir não-ASCII corretamente. Devo passar alguns argumentos mágicos para o ssh ou existe uma configuração no gnome-terminal, ou devo usar stty? Estou um pouco perdida.

Atualização:

OK. Eu agora reduzi o problema um pouco. Se eu executar o seguinte na linha de comando:

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

E pressione uma tecla não-ascii, que ecoa corretamente. No entanto, se eu digitar a mesma chave no shell, nada acontece. Então, isso deve ser alguma configuração no ambiente do shell (configuração Locale?). Alguma idéia?

    
por troelskn 11.09.2009 / 11:30

2 respostas

3

O problema provavelmente tem a ver com readline, que o bash usa. Coloque o seguinte em /etc/inputrc ou ~/.inputrc :

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

meta-flag ativa a entrada de oito bits (ou seja, não limpará o oitavo bit nos caracteres que lê), independentemente do que o terminal afirme poder suportar. output-meta permitirá a exibição de caracteres com o oitavo bit definido diretamente, em vez de uma seqüência de escape meta-prefixada. Quando convert-meta está ativado, readline converte caracteres com o oitavo bit configurado para uma sequência de chaves ASCII, removendo o oitavo bit e prefixando-o com um caractere de escape (na verdade, usando escape como meta-prefixo). Nós desligamos. Do man readline para mais informações sobre estas e outras variáveis.

    
por 17.09.2009 / 21:28
2

Você pode alterar a codificação em Terminal- > Codificação no menu do gnome-terminal. Adicione a codificação Western (ISO 8859-1) e mude para ela.

    
por 11.09.2009 / 13:53