
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:
No terminal virtual fica assim:
No terminal virtual com JFBTERM fica assim:
Aqui está uma captura de tela da saída de locale
:
Aqui está a saída de 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 iconv
transliterar kana para ASCII.
Responder3
Além de LANG/LC_ALL
, stty iutf8
ser necessário informar ao terminal o que fazer, talvez seja necessário setfont
carregar 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_utf8
se ele não carregar automaticamente (acho que isso só é necessário para nomes de arquivos Unicode).
Algumas distribuições Linux fornecem unicode_start
scripts unicode_stop
para automatizar isso.
Se less
causar problemas, pode exigir que a variável de ambiente LESSCHARSET
seja 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:~$