¿Cómo mostrar Unicode en un terminal virtual de Linux?

19

La lectura de cualquier dato en Unicode no se muestra correctamente en el terminal de Linux (es decir, el terminal virtual que se abre sin una ventana X).

Leí en una discusión aquí que instalar programas como JFBTERM , y funciona, así que me preguntaba si no hay forma de configurar (¿consolafonts?) El terminal para manejar correctamente unicode sin ningún software adicional.

En los terminales de Windows (gnome-terminal, xterm, etc.) se ve así:

terminal de gnomo

En la terminal virtual se ve así:

Vermont

En la terminal virtual con JFBTERM se ve así:

jbfterm

Aquí hay una captura de pantalla de la salida de locale:

lugar

Aquí está la salida de showconsolefont:

showconsolefont

¿Alguien sabe si es posible lograr lo mismo solo con el terminal virtual predeterminado?

bruno.braga
fuente

Respuestas:

5

La fuente de la consola puede cargar fuentes de hasta 512 (creo, o algo así) diferentes glifos; usualmente solo 256 glifos sin embargo.

Para mostrar latín, cirílico u otros idiomas que usan menos de 200 símbolos no complejos no hay problema.

Sin embargo, para los guiones complejos, o los guiones que necesitan muchos símbolos diferentes (como el japonés), no tiene otra posibilidad que usar un diseño adicional para manejarlo.

Tenga en cuenta que si el límite de 512 debería ser suficiente para ASCII y ambos conjuntos de Kana, existe el problema del ancho.

CJK y Kana encajan en un cuadrado, son dos veces el ancho de las letras latinas. Eso no es algo que la consola pueda manejar desde el primer momento.

Podrías recurrir a la vieja y fea "Halfwidth Katakana" (y tal vez incluso encontrar una fuente antigua de tal cosa), o configurar tu consola a 40 columnas de ancho y tener letras latinas tan anchas como Kana.

No conozco ninguna fuente de consola con Kana; debe dibujar el suyo (hay herramientas para hacerlo, y puede copiar los puntos de la fuente japonesa de mapa de bits).

Además, puede usar iconvpara transliterar kana en ASCII.

Pablo Saratxaga
fuente
3

Necesita una fuente que realmente tenga estos caracteres. Arch Linux, por ejemplo, recomienda Lat2-Terminus16.

Para probarlo, simplemente emitir el siguiente comando en una consola virtual: setfont Lat2-Terminus16.

En cuanto al resto, la mayoría de las distribuciones modernas ya lo admiten de fábrica.

Daniel B
fuente
2

Además de LANG/LC_ALL, stty iutf8es necesario decirle al terminal qué hacer, es posible que deba setfontcargar una fuente útil y un mapeo. Si todavía tiene problemas, verifique la configuración de su kernel para ver la CONFIG_NLS_xxconfiguración, es posible que deba hacerlo modprobe nls_utf8si no se carga automáticamente (aunque creo que esto solo es necesario para los nombres de archivo Unicode).

Algunas distribuciones de Linux proporcionan unicode_starty unicode_stopscripts para automatizar esto.

Si lesscausa problemas, puede requerir LESSCHARSETque se establezca la variable de entorno (o se desarme si está mal).

Las preguntas frecuentes de Markus Kuhn sobre UTF-8 y Unicode para Unix / Linux son invaluables.

Sr. púrpura
fuente