gnome-terminal unicode chars não mostrando - Locale está definido como en_US.utf8

6

Eu fiquei perplexo tentando fazer com que meu terminal mostrasse caracteres unicode. Eu configurei as variáveis de ambiente LOCALE / LANG para en_US.utf8:

locale
    LANG=en_US.utf8
    LC_CTYPE=en_US.utf8
    LC_NUMERIC="en_US.utf8"
    LC_TIME="en_US.utf8"
    LC_COLLATE="en_US.utf8"
    LC_MONETARY="en_US.utf8"
    LC_MESSAGES="en_US.utf8"
    LC_PAPER="en_US.utf8"
    LC_NAME="en_US.utf8"
    LC_ADDRESS="en_US.utf8"
    LC_TELEPHONE="en_US.utf8"
    LC_MEASUREMENT="en_US.utf8"
    LC_IDENTIFICATION="en_US.utf8"
    LC_ALL=


echo -e '\xe2\x82\xac' 
���

Tudo que encontrei diz para definir as variáveis LANG e LOCALE, o que eu fiz, mas o problema persiste. locale -a mostra que a localidade certa está disponível:

Laptop:~:0:2030$ locale -a | grep utf
de_AT.utf8
de_BE.utf8
de_CH.utf8
de_DE.utf8
de_LI.utf8
de_LU.utf8
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN.utf8
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM.utf8
en_ZW.utf8
es_AR.utf8
es_BO.utf8
es_CL.utf8
es_CO.utf8
es_CR.utf8
es_DO.utf8
es_EC.utf8
es_ES.utf8
es_GT.utf8
es_HN.utf8
es_MX.utf8
es_NI.utf8
es_PA.utf8
es_PE.utf8
es_PR.utf8
es_PY.utf8
es_SV.utf8
es_US.utf8
es_UY.utf8
es_VE.utf8
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8
ga_IE.utf8
nl_AW.utf8
nl_BE.utf8
nl_NL.utf8
pl_PL.utf8

Também verifiquei que isso não está limitado ao CLI. Fazer, por exemplo, u+2713 no VIM (que é algo que eu uso com frequência), também fornece uma saída de caractere <?> .

Nas opções do gnome-terminal, eu o configurei para usar a fonte padrão do sistema, mas tentei todas as fontes na lista sem nenhuma ajuda, e pesquisando por "fonte unicode do terminal" apenas continua o ciclo de me dizer para defina meu LOCALE / LANG.

-

Editar: conforme sugerido abaixo, alterei o locale / lang para en_US.UTF-8, o que não resolveu o problema:

Laptop:~:0:2013$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Laptop:~:0:2014$ echo -e '\xe2\x82\xac'
���
    
por Tom Thorogood 24.12.2013 / 00:17

2 respostas

5

A solução foi muito mais simples. Eu tive que ir para as configurações da GUI para o gnome-terminal, visite Terminal - > Definir codificação de caracteres - > UTF-8.

- Para manter isso como o padrão no Ubuntu (e desculpe descobrir que é uma solução específica de distro neste fórum SE):

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8

    
por 24.12.2013 / 17:33
3

Eu tive o mesmo problema com Terminal - > Definir codificação de caracteres - > Unicode (UTF-8) configurado corretamente. O problema foi corrigido, definindo a codificação para outra coisa e, em seguida, de volta para UTF-8. Os caracteres visíveis não foram alterados imediatamente, mas os novos tipos começaram a aparecer corretamente. Não há necessidade de reiniciar nada.

    
por 16.05.2017 / 01:42