En algunos programas, como htop
las líneas y los marcos, no se muestran correctamente. En cambio, se muestran como -
y /
.
Pero en otra máquina, se muestran correctamente como líneas adecuadas:
No estoy seguro de si se trata de un problema terminal, o si quizás algún paquete es necesario.
En caso de que sea relevante: mi sistema es Debian Wheezy, mi intérprete es bash
y mi emulador de terminal esgnome-terminal
terminal
character-encoding
Martin Vegter
fuente
fuente
htop
visualización de caracteres ASCII. Sin embargo, si la fuente de terminal predeterminada no es Unicode, entonces la codificación también es probable, así que he agregado eso a mi respuesta.Respuestas:
Su ejemplo principal se ejecuta con una configuración regional no Unicode (es decir, ASCII). Verifique su variable de entorno $ LANG (pruebe
export | grep LANG
); lo más probable es que no encuentres un.UTF-8
sufijo. Intenta agregarlo:Su otro ejemplo se ejecuta con un entorno local UTF-8, que debería ser el predeterminado para los shells recientes. Parece que
htop
detecta su configuración regional y muestra caracteres ASCII o Unicode, por lo que en la imagen inferior, obtienes buenos caracteres Unicode, mientras que con ASCII obtienes algunos bastante improvisados. Sugeriría cambiar la configuración regional de la máquina de la imagen superior a una Unicode (consulte Configuración regional - Wiki de Debian ).Si eso no funciona, puede ser que su emulador de terminal sea el problema. La codificación predeterminada podría ser no Unicode. Cambie la codificación predeterminada de su emulador de terminal a UTF-8 (
xfce4-terminal
lo encontré en la pestaña Avanzado). Si no puede, es posible que su fuente actual no sea compatible con Unicode: intente cambiar su fuente a una Unicode.[Curiosamente, descubrí que una vez que había cambiado mi configuración regional a ASCII una vez en una sesión de shell,
htop
siempre muestra los caracteres ASCII, incluso después de volver a cambiarlo. Ese podría ser su problema, si por alguna razón está cambiando su configuración regional en su shell ocasionalmente.]fuente
Lo extraño es que
htop
usa ncurses, que puede dibujar líneas con / sin Unicode. Sin embargo, mirar el código fuente enCRT.c
muestra la explicación:y el
CRT_treeStrUtf8
valor esSin 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:
border
,wborder
,box
,hline
,whline
,vline
,wvline
,mvhline
,mvwhline
,mvvline
,mvwvline
- crear bordes maldiciones, líneas horizontales y verticalesdialog
capturas de pantalla ( ninguna requiere codificación UTF-8 para usar el dibujo lineal)fuente
LANG
/LC_ALL
habilitar los caracteres de dibujo de línea Unicode esperadoshtop
), esto es muy interesante. ¡Gracias por tomarte el tiempo de explicarlo!