Lo extraño es que htop
usa ncurses, que puede dibujar líneas con / sin Unicode. Sin embargo, mirar el código fuente en CRT.c
muestra la explicación:
#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;
y el CRT_treeStrUtf8
valor es
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 ─
};
Sin embargo, ncurses (cualquier implementación de maldiciones) tiene símbolos portátiles para estos que no dependen de si la codificación es UTF-8 o no. Algunas aplicaciones (como la opción de diálogo--ascii-lines
) ofrecen una opción para usar el dibujo lineal ASCII, pero una aplicación que ni siquiera intenta usar el dibujo lineal proporcionado en ncurses no está haciendo un uso efectivo de la biblioteca.
En resumen, cuando se encuentra con un programa que se comporta así, debe informarlo como un error a los desarrolladores.
Otras lecturas:
- Gráficos de línea (página de manual de complemento ncurses)
border
, wborder
, box
, hline
, whline
, vline
, wvline
,
mvhline
, mvwhline
, mvvline
, mvwvline
- crear bordes maldiciones, líneas horizontales y verticales
dialog
capturas de pantalla ( ninguna requiere codificación UTF-8 para usar el dibujo lineal)