Como exibir Unicode em um terminal virtual Linux?

Como exibir Unicode em um terminal virtual Linux?

A leitura de quaisquer dados em Unicode não é exibida corretamente no terminal Linux (ou seja, o terminal virtual que abre sem um X windows).

Eu leioem uma discussão aquique a instalação de programas comoJFBTERM, e funciona, então gostaria de saber se não há nenhuma maneira de configurar (consolefonts?) O terminal para lidar corretamente com o Unicode sem nenhum software extra.

Nos terminais Windows (gnome-terminal, xterm, etc) fica assim:

terminal gnome

No terminal virtual fica assim:

vt

No terminal virtual com JFBTERM fica assim:

jbfterm

Aqui está uma captura de tela da saída de locale:

localidade

Aqui está a saída de showconsolefont:

showconsolefont

Alguém sabe se é possível fazer o mesmo apenas com o terminal virtual padrão?

Responder1

Você precisa de uma fonte que realmente contenha esses caracteres. Arch Linux, por exemplo, recomenda Lat2-Terminus16.

Para experimentar, basta emitir o seguinte comando em um console virtual: setfont Lat2-Terminus16.

Quanto ao resto, a maioria das distribuições modernas já o suporta imediatamente.

Responder2

A fonte do console pode carregar fontes em até 512 (eu acho, ou algo parecido) glifos diferentes; geralmente apenas 256 glifos.

Exibir latim, cirílico ou outros idiomas que usam menos de 200 símbolos não complexos não é problema.

No entanto, para scripts complexos ou que precisam de muitos símbolos diferentes (como o japonês), você não tem outra possibilidade a não ser usar um layout extra para lidar com isso.

Observe que se o limite de 512 for suficiente para ASCII e ambos os conjuntos Kana, existe o problema da largura.

CJK e Kana cabem em um quadrado, têm o dobro da largura das letras latinas. Isso não é algo que o console possa suportar imediatamente.

Você pode recorrer ao antigo e feio “Halfwidth Katakana” (e talvez até encontrar uma fonte antiga desse tipo), ou definir seu console para 40 colunas de largura e fazer com que as letras latinas sejam tão largas quanto Kana.

Não conheço nenhuma fonte de console desse tipo com Kana; você deve desenhar o seu próprio (existem ferramentas para fazer isso, e você pode simplesmente copiar os pontos da fonte japonesa bitmap.

Além disso, você pode iconvtransliterar kana para ASCII.

Responder3

Além de LANG/LC_ALL, stty iutf8ser necessário informar ao terminal o que fazer, talvez seja necessário setfontcarregar uma fonte e um mapeamento úteis. Se você ainda tiver problemas, verifique as configurações do kernel CONFIG_NLS_xx, pode ser necessário modprobe nls_utf8se ele não carregar automaticamente (acho que isso só é necessário para nomes de arquivos Unicode).

Algumas distribuições Linux fornecem unicode_startscripts unicode_stoppara automatizar isso.

Se lesscausar problemas, pode exigir que a variável de ambiente LESSCHARSETseja definida (ou desativada se estiver errada).

Markus KuhnPerguntas frequentes sobre UTF-8 e Unicode para Unix/Linuxé inestimável.

Responder4

Ao instalaruniutilsvocê pode encontrar unicodes.

$ sudo apt-get install uniutils

Então use uniname:

ubuntu@shin-instance:~$ echo 岡田shin | uniname
No LINES variable in environment so unable to determine lines per page.
Using default of 24.
character  byte       UTF-32   encoded as     glyph   name
        0          0  005CA1   E5 B2 A1       岡      CJK character Nelson  621
        1          3  007530   E7 94 B0       田      CJK character Nelson 2994
        2          6  000073   73             s      LATIN SMALL LETTER S
        3          7  000068   68             h      LATIN SMALL LETTER H
        4          8  000069   69             i      LATIN SMALL LETTER I
        5          9  00006E   6E             n      LATIN SMALL LETTER N
        6         10  00000A   0A                     LINE FEED (LF)
ubuntu@shin-instance:~$

informação relacionada