Дивна річ у тому, що htop
використовують ncurses, які можуть малювати лінії з / без Unicode. Однак, дивлячись на вихідний код у, CRT.c
показує пояснення:
#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;
і CRT_treeStrUtf8
значення є
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 ─
};
Однак у ncurses (будь-яка реалізація прокльонів) є переносні символи, які не залежать від того, чи є кодування UTF-8 чи ні. Деякі додатки (наприклад, діалог «s --ascii-lines
опція) забезпечують варіант для використання ASCII малювання ліній, але додаток , яке навіть не намагатися використовувати лінію витяжки , представлену в Ncurses не ефективність використання бібліотеки.
Коротше кажучи, коли ви натрапляєте на програму, яка поводиться так, ви повинні повідомити про це як про помилку розробникам.
Подальше читання:
- Лінійна графіка (сторінка керівництва з додатком до нуклеусів)
border
, wborder
, box
, hline
, whline
, vline
, wvline
,
mvhline
, mvwhline
, mvvline
, mvwvline
- створення проклинає кордонів, горизонтальні і вертикальні лінії
dialog
скріншоти ( жоден для кодування UTF-8 для використання малювання рядків не потребує)