'less' não é capaz de exibir caracteres especiais

2

Eu tropecei em personagens especiais ruins em algumas páginas do mundo:

If your terminal is a "true" auto-margin terminal (it doesn▒<80><99>t allow the last position on the screen to be updated without scrolling the screen) consider using a version of your terminal▒<80><99>s termcap that has automatic margins turned off. This will ensure an accurate and optimal update of the screen in all circumstances. Most terminals nowadays have "magic" margins (automatic margins plus usable last column). This is the VT100 style type and perfectly suited for screen. If all you▒<80><99>ve got is a [...]

Eu fiz algumas pesquisas. man usa $pager como sua ferramenta de exibição e isso é definido como less em meu ambiente. Portanto, aparentemente, less não é capaz de exibir os caracteres especiais das páginas man.

Meu terminal (putty) está definido como Utf-8 e $LANG=en_US.UTF-8 . O que pode estar errado?

    
por d135-1r43 05.06.2012 / 07:45

2 respostas

3

Veja primeiro se você tem a variável de ambiente LESSCHARSET definida.

echo $LESSCHARSET

Se isso não for utf-8 , defina-o:

export LESSCHARSET="utf-8"

Veja se isso ajuda. Você também pode tentar um pager chamado most , está disponível pelo menos em repositórios de pacotes Debian / Ubuntu.

    
por 05.06.2012 / 10:39
0

Tente outro pager (como most ).

PAGER=most man command_name

ou

man -P most command_name

ou

man --pager=most command_name

para ver se ele pode exibir os apóstrofos corretamente.

Pode ser que o arquivo de origem (se houver) para a página man esteja ruim, as ferramentas para processar a página man ( *roff ) estão manipulando o caractere incorretamente ou o arquivo de objeto ( cat file) essas ferramentas criadas podem estar incorretas. Em alguns sistemas, você pode gerar novamente os arquivos de objeto da página man .

Execute man com uma dessas opções ( -W , --where-cat ou --location-cat ) para ver onde o arquivo cat está localizado. Tente renomear (em vez de excluir - para que você possa recuperá-lo, se necessário) o arquivo cat para que um novo seja gerado.

Você pode tentar especificar a codificação para ver se isso ajuda. Tente UTF-8 e UTF-16 , por exemplo.

man -E UTF-8 command_name

ou

man --encoding=UTF-8 command_name

Por fim, execute mandb para verificar a consistência do cache.

    
por 05.06.2012 / 10:42