Como corrigir o PuTTY mostrando caracteres ilegíveis?

67

Conectando-se de um PC com Windows 7 via SSH a um servidor Ubuntu usando PuTTY , recebo alguns erros de tela:

Ouseja.isso:

  • "Desenha duas vezes" a seleção dentro de Midnight Commander (MC).
  • Outros caracteres, como elementos de linha, são desenhados como os caracteres errados (por exemplo, "â" em vez de "|").

Conectei-me ao mesmo servidor Ubuntu com um terminal e SHH a partir de um Mac OS X e não obtenho esses rastreadores de tela (ou seja, tudo parece e funciona corretamente). Eu já tentei jogar com as configurações de fonte dentro do PuTTY, mudando de Courier New para Consolas mas sem sorte.

Minha pergunta, portanto, é:

Como configurar o PuTTY para exibir corretamente caracteres especiais e não desenhar / sobrescrever linhas de tela?

    
por Uwe Keim 06.02.2013 / 06:14

11 respostas

68

Você quase certamente definiu o conjunto de caracteres errado em suas configurações do PuTTY .

Verifique o conjunto de caracteres no sistema remoto executando o comando:

locale

Isso deve retornar algo como:

LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Portanto, verifique suas configurações do PuTTY em Tradução e verifique se você tem UTF-8 definido como o conjunto de caracteres.

Você pode precisar ajustar a configuração do desenho de linha também, mas provavelmente não é provável.

    
por 06.02.2013 / 06:32
32

Eu tive um problema com o programa aptitude do Debian, mesmo tendo o UTF-8 como meu conjunto de caracteres. O que funcionou para mim foi definir o 'Connection > Dados > 'String do tipo terminal' para 'putty' em vez de 'xterm' - aparentemente Putty ignora a sequência de caracteres para alternar para o modo de desenho: link

    
por 19.01.2015 / 01:57
9

Além disso, se o UTF-8 não estiver configurado corretamente, você poderá executá-lo como mc -ac .

Créditos: link

    
por 24.10.2014 / 00:58
5

Os dois fatores básicos são Window / Translation UTF-8 em configurações de putty e locale no Linux, conforme instruído aqui e em muitos outros lugares.

Além disso, pode ajudar o putty a definir a sequência Conexão / Dados / Tipo Terminal para massa , e / ou no Linux para export NCURSES_NO_UTF8_ACS=1 . Estes dois também são mencionados em vários lugares.

Mas: você ainda pode obter blocos para determinados caracteres porque as fontes padrão, como Courier e Lucida Console, não possuem todos os caracteres Unicode. Faça o download e instale o link e defina o putty para usá-lo.

Este último truque foi necessário para eu obter noping (recomendado!) para mostrar todos os caracteres gráficos.

    
por 14.07.2015 / 09:41
4

No meu caso (Ubuntu 14.04) o problema foi causado por falta

UsePAM yes    
A entrada

em / etc / ssh / sshd_config como /etc/pam.d/sshd configuração pam é responsável por padrão por carregar o / etc / default / locale no ambiente dos usuários.

    
por 20.10.2014 / 16:22
4

Eu estava procurando muitas soluções para isso ao usar a máquina Docker (local e em máquinas configuradas pelo administrador do sistema). Na minha Putty estava tudo bem (eu tinha UTF-8 ), eu estava usando também outro cliente SSH e tinha exatamente o mesmo problema.

Em exibição:

mc -ac

estava resolvendo o problema (mas não completamente) e eu estava procurando uma solução completa.

Depois de ler muitas sugestões, finalmente encontrei a que resolveu meu problema.

No terminal quando você executa:

locale

verifique qual localidade você definiu. Eu tinha por padrão C locale.

Para verificar toda a localidade instalada, execute locale -a

Eu tenho, por exemplo:

C
C.UTF-8
POSIX

por padrão.

A solução está exportando a variável LANG com C.UTF-8 locale da seguinte forma:

export LANG="C.UTF-8"

Você pode, obviamente, adicioná-lo em .bashrc para que ele seja definido automaticamente em seu perfil.

    
por 06.05.2016 / 16:48
3

Para todos os seus pobres VMS antigos que acabam aqui:

PuTTY → Window → Translation → Remote character set → DEC-MCS

funcionou para mim.

    
por 05.12.2016 / 19:55
2

Outro motivo de alguma forma relacionado ao pam que pode afetar os hosts com autenticação powerbroker / pbis / da mesma forma.

grep /etc/pam.d para a ocorrência "lsass":

grep -r lsass /etc/pam.d

se você vir na saída algo como:

/etc/pam.d/common-session:session       sufficient        pam_lsass.so

então é provavelmente a causa raiz do problema. A solução rápida é substituir "suficiente" por "opcional" ao lado do módulo pam_lsass para que pareça:

/etc/pam.d/common-session:session       optional        pam_lsass.so

/etc/pam.d/common-session (ou outro arquivo com entrada similar - pode haver alguns deles) provavelmente está incluído no /etc/pam.d/sshd antes que o pam_env seja carregado, assim, se o processamento do pam módulos é terminado antes de chegar a pam_env, o / etc / default / locale não é carregado no ambiente do usuário e você tem caracteres ilegíveis.

    
por 20.05.2015 / 15:04
1

A execução do mc desta forma (definir local para en) funciona para mim:

$ LC_ALL=en mc
    
por 05.05.2016 / 09:27
1

o que funcionou para mim foi "Conexão, Dados, tipo de terminal string = ansi" mais "Janela, Tradução, Conjunto de caracteres remoto = Usar codificação de fonte", em seguida, set TERM=ansi no lado do unix.

PS. Lembre-se de desativar as aspas se você for forçado a usar o MS-Word.

    
por 10.03.2017 / 15:05
1

Meu problema é que o putty é configurado como UTF-8, mas o sistema remoto é um ISO-8859-1

oeste da Europa, então eu mudei isso em massa e tudo funcionou bem.

Captura de tela do Putty

    
por 15.09.2018 / 09:05