Isso sugere que o screen
que você está anexando à sua sessão acha que seu terminal não está em UTF-8.
Ele pensa, por exemplo (se assumir que o conjunto de caracteres é iso-8859-1) que 0xc3
vindo do dispositivo terminal significa Ã
.
A sessão de tela, no entanto, está sendo executada em UTF-8 ( screen
é um emulador de terminal que pode ser conectado a diferentes tipos de terminais).
Portanto, ao digitar ä
, você está enviando 0xc3
0xa4
. screen
entende que você está digitando dois caracteres ( Ã
e ¤
). Ele precisa convertê-los em seu equivalente UTF-8.
Em exibição, esses caracteres UTF-8 são convertidos em seus equivalentes iso-8859-1, e é por isso que você está vendo ä
e não ä
.
Você precisa dizer a screen
que seu terminal é UTF-8.
Normalmente, basta definir a localidade como uma localidade UTF-8.
A maioria das implantações ssh passa as informações de localidade do cliente para o comando remoto. Se sua localidade no cliente for UTF-8, o ssh não passará as variáveis de ambiente do código de idioma ou o sshd não as aceitará, ou o código do idioma no lado do cliente não será um dos suportados no servidor , ou o seu ~/.bashrc
no servidor de alguma forma o substitui.
De qualquer forma, fazendo:
ssh -t remotehost LANG=fi_FI.UTF-8 screen -dr
(certificando-se de que fi_FI.UTF-8
é de fato uma localidade suportada no host remoto, veja locale -a
para verificar) deve corrigir isso.