Em alguns programas, como htop
linhas e quadros, não são exibidos corretamente. Em vez disso, eles são exibidos como -
e /
.
Mas em outra máquina, eles são exibidos corretamente como linhas apropriadas:
Não tenho certeza se esse é um problema terminal ou se talvez seja necessário algum pacote.
Caso seja relevante: Meu sistema é o Debian Wheezy, meu intérprete é bash
e meu emulador de terminal égnome-terminal
terminal
character-encoding
Martin Vegter
fonte
fonte
htop
exibição de caracteres ASCII. No entanto, se a fonte padrão do terminal não for Unicode, é provável que a codificação também seja, então adicionei isso à minha resposta.Respostas:
Seu exemplo principal está sendo executado com um código de idioma não Unicode (ou seja, ASCII). Verifique sua variável de ambiente $ LANG (tente
export | grep LANG
); você provavelmente não encontrará um.UTF-8
sufixo. Tente adicioná-lo:Seu outro exemplo está sendo executado com um código de idioma UTF-8, que deve ser o padrão para shells recentes. Parece que
htop
detecta seu código de idioma e exibe caracteres ASCII ou Unicode - então, na imagem inferior, você obtém caracteres Unicode legais, enquanto com o ASCII você obtém alguns caracteres bastante improvisados. Eu sugeriria mudar o local da máquina da imagem superior para uma Unicode (veja Localidade - Debian Wiki ).Se isso não funcionar, pode ser que o seu emulador de terminal seja o problema. A codificação padrão pode ser não-Unicode. Mude a codificação padrão do seu emulador de terminal para UTF-8 (
xfce4-terminal
encontrei-a na guia Avançado). Se você não puder, pode ser que sua fonte atual não seja compatível com Unicode: tente alterar sua fonte para uma Unicode.[Estranhamente, descobri que depois de alterar meu código de idioma para ASCII uma vez em uma sessão de shell,
htop
sempre exibe os caracteres ASCII, mesmo depois de alterá-lo novamente. Esse pode ser o seu problema, se por algum motivo você estiver alterando seu local no shell ocasionalmente.]fonte
O estranho é que
htop
usa ncurses, que podem desenhar linhas com / sem Unicode. No entanto, olhar o código-fonteCRT.c
mostra a explicação:e o
CRT_treeStrUtf8
valor éNo entanto, ncurses (qualquer implementação de maldições) possui símbolos portáteis para esses que não dependem se a codificação é UTF-8 ou não. Alguns aplicativos (como a opção da caixa de diálogo
--ascii-lines
) fornecem uma opção para usar o desenho de linha ASCII, mas um aplicativo que nem tenta usar o desenho de linha fornecido nas ncurses não está fazendo uso efetivo da biblioteca.Em suma, quando você se deparar com um programa que se comporta dessa maneira, deve relatá-lo como um bug aos desenvolvedores.
Leitura adicional:
border
,wborder
,box
,hline
,whline
,vline
,wvline
,mvhline
,mvwhline
,mvvline
,mvwvline
- criar maldições fronteiras, linhas horizontais e verticaisdialog
capturas de tela ( nenhuma requer codificação UTF-8 para usar desenho de linha)fonte
LANG
/LC_ALL
ativar os caracteres de desenho de linha Unicode esperadoshtop
), isso é muito interessante. Obrigado por reservar um tempo para explicá-lo!