No meu terminal Mac, a impressão UTF-8 funciona em geral, mas less
não funciona corretamente.
Então, isso funciona corretamente:
$ echo -e '\xe2\x82\xac'
€
mas canalizá-lo para menos fornece algo como isto:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Como isso pode ser consertado?
Para diagnóstico:
Estou usando o Mac OS 10.6.8. menos versão 418, Terminal 2.1.2 (273.1).
A saída do meu código do idioma é esta:
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
less -r
(visualização caracteres de controle "brutos")less -r
faz a mesma coisa, mas também lida com emojis corretamente, o queexport LESSCHARSET=utf-8
não acontece.Se você conseguir ver alguns caracteres unicode
less
, mas não conseguirless
exibir o emoji, tente atualizarless
para uma versão mais recente. No Mac OS X, fui da versão 458 para 481 e isso corrigiu meu problema (por exemplo,git log
agora é possível exibir emoji nas mensagens de confirmação).Se você possui homebrew, pode substituir menos o sistema por uma versão mais recente executando
brew install homebrew/dupes/less
.fonte
brew install less
obter a atualização.Funciona para mim com
fonte
Eu pesquisei isso no Google e tentei as seguintes variáveis de ambiente que funcionaram para mim:
Como encontro o LC_ALL em várias respostas diferentes, acho que essa é a correta. Mas talvez não seja a única resposta certa, é claro que poderia haver respostas mais corretas para essa pergunta.
De qualquer forma, mais pesquisas no Google me deram essa descrição para a variável:
fonte: http://pubs.opengroup.org/onlinepubs/007908799/xbd/envvar.html
Levando-me a pensar que esta é a variável de idioma para governar todos eles :)
fonte
less
'número da versão.Apenas atualize você
[less][1]
Faça com cerveja.
fonte