O estranho é que htop
usa ncurses, que podem desenhar linhas com / sem Unicode. No entanto, olhar o código-fonte CRT.c
mostra a explicação:
#ifdef HAVE_LIBNCURSESW
if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
CRT_utf8 = true;
else
CRT_utf8 = false;
#endif
CRT_treeStr =
#ifdef HAVE_LIBNCURSESW
CRT_utf8 ? CRT_treeStrUtf8 :
#endif
CRT_treeStrAscii;
e o CRT_treeStrUtf8
valor é
const char *CRT_treeStrUtf8[TREE_STR_COUNT] = {
"\xe2\x94\x80", // TREE_STR_HORZ ─
"\xe2\x94\x82", // TREE_STR_VERT │
"\xe2\x94\x9c", // TREE_STR_RTEE ├
"\xe2\x94\x94", // TREE_STR_BEND └
"\xe2\x94\x8c", // TREE_STR_TEND ┌
"+", // TREE_STR_OPEN +
"\xe2\x94\x80", // TREE_STR_SHUT ─
};
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:
- Gráficos de linha (página de manual do ncurses addch)
border
, wborder
, box
, hline
, whline
, vline
, wvline
,
mvhline
, mvwhline
, mvvline
, mvwvline
- criar maldições fronteiras, linhas horizontais e verticais
dialog
capturas de tela ( nenhuma requer codificação UTF-8 para usar desenho de linha)