Isso está relacionado a outro que respondi recentemente, mas a resposta aceita nesse caso é inadequada:
terminal: exibindo caracteres especiais
A primeira captura de tela mostra claramente que htop
está sendo executado em um terminal no qual a codificação UTF-8 não é suportada, porque o texto com desvios deve ser caracteres de desenho de linha. Este último mostra o uso de caracteres ASCII para imitar os caracteres de desenho de linha.
A configuração de TERM
é irrelevante, porque htop
não usa a descrição do terminal para decidir como desenhar linhas. Ele usa suas variáveis de ambiente local para escolher entre dois esquemas codificados para desenhar linhas. Ele usa a chamada nl_langinfo
em this ifdef :
#ifdef HAVE_LIBNCURSESW
if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
CRT_utf8 = true;
else
CRT_utf8 = false;
#endif
para decidir (com base em LC_ALL
, LC_CTYPE
, etc.), que seu terminal suporta UTF-8 e está configurado para fazer isso.
Leitura adicional: