Você está procurando por luit
, que foi criado para essa finalidade:
$ luit -encoding ISO-8859-1 ssh remote.host
Ele converterá a saída do comando ssh para UTF-8, para que você não precise alterar a codificação do terminal.
Um dos servidores que eu usei com frequência ssh
usa codificação ocidental em vez de utf-8 (e não há como alterar isso).
Eu comecei a escrever um script bash para me conectar a este servidor, então não precisarei digitar o endereço inteiro toda vez, mas eu gostaria de melhorar este script para que ele também mude a codificação da janela do terminal. corretamente.
A alteração que preciso fazer pode ser realizada usando o mouse navegando até "Terminal" - > "Definir codificação de caracteres ..." - > "Ocidental (ISO-8859-1)". Existe um comando de terminal que faz a mesma coisa, para a janela / tela do terminal atual?
Para esclarecer:
Eu estou não interessado em maneiras de trocar a localidade do sistema no site remoto - esse sistema é administrado por outra pessoa, e eu não tenho idéia de qual coisa pode depender da codificação latin-1 lá . O que eu quero fazer é deixar esta janela de terminal do meu lado mudar a codificação de caracteres para o acima mencionado, da mesma forma que eu posso fazer com o meu mouse e os menus.
Você está procurando por luit
, que foi criado para essa finalidade:
$ luit -encoding ISO-8859-1 ssh remote.host
Ele converterá a saída do comando ssh para UTF-8, para que você não precise alterar a codificação do terminal.
Primeiro edite as localidades atuais no seu editor favorito
sudo gedit /var/lib/locales/supported.d/local
para algo como
en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
Em seguida, execute sudo dpkg-reconfigure locales
Em seguida, defina o terminal com LANG=en_GB.ISO-8859-1
Espero que funcione
O Gnome Terminal usa o gconf para armazenar as configurações. Estes podem ser manipulados com gconftool
Então, você pode usar:
gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding ISO-8859-1
Eu testei isso em 12.04. Por algum motivo, o menu ( "Terminal"->"Set Character Encoding..."
) parece não ser atualizado em tempo real, mas a codificação de caracteres real é atualizada corretamente.
Eu não sei como testá-lo, mas com o Konsole no Kubuntu eu posso fazer o seguinte:
1) Encontrar aplicativo registrado no dbus
$ qdbus
Eu uso konsole
, então um simples qdbus | grep kons
me dá org.kde.konsole
2) Encontre as sessões atuais no Konsole
$ qdbus org.kde.konsole | grep Sessions
/Sessions
/Sessions/1
$ set | grep -i sessions
KONSOLE_DBUS_SESSION=/Sessions/1
3) Encontre métodos úteis
$ qdbus org.kde.konsole /Sessions/1 | grep -i codec
method QByteArray org.kde.konsole.Session.codec()
method bool org.kde.konsole.Session.setCodec(QByteArray codec)
4) Verifique a codificação atual
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
UTF-8
5) Definir codificação
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.setCodec ISO-8859-1
true
6) Verifique a codificação atual
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
ISO-8859-1
O Ubuntu terá um programa de terminal semelhante, mas você terá que se intriguar com nome de serviço, caminho, método e argumentos corretos.
Aqui está outra solução que usei para alterar o perfil (para cor de plano de fundo) ao se conectar a um servidor de produção. Envolve xdotool
.
xdotool
simulará as teclas necessárias para selecionar o item de menu desejado. Experimente primeiro com o teclado e anote a sequência:
$ xdotool key alt+t Down c Down Return
Ele ativará a codificação do primeiro caractere. Adicione mais Down
keys antes do Return
para selecionar outro.
Observação: para ssh
, você também pode usar um arquivo ~/.ssh/config
para configurar aliases em seus servidores.
Em xterm
, altere a codificação usando sequências de controle . Por exemplo, dentro de bash
você obtém o conjunto de caracteres UTF-8 executando:
echo -n $'\e%G'
A codificação ISO 8859-1 é acessível executando:
echo -n $'\e%@'