Como fazer com que o comando 'less' manipule UTF-8?

27

No meu terminal Mac, a impressão do UTF-8 funciona em geral, mas o less não funciona corretamente.

Então, isso funciona corretamente:

$  echo -e '\xe2\x82\xac'   
€

mas canalizá-lo para menos dá algo assim:

$  echo -e '\xe2\x82\xac' | less  
<E2><82><AC>

Como isso pode ser corrigido?

Para diagnósticos:

Estou usando o Mac OS 10.6.8. menor versão 418, Terminal 2.1.2 (273.1).

A saída da minha localidade é 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"
    
por user9474 06.08.2012 / 16:49

5 respostas

37

Ok, eu encontrei a resposta depois de algum googling. Aparentemente, LESSCHARSET precisa ser definido assim:

export LESSCHARSET=utf-8

Agora, less funciona bem para mim.

    
por 06.08.2012 / 16:58
6

Se você puder ver alguns caracteres unicode em less , mas não conseguir exibir less para exibir emojis, tente atualizar less para uma versão mais recente. No Mac OS X, fui da versão 458 para a 481 e isso resolveu meu problema (por exemplo, git log agora pode exibir emoji em mensagens de confirmação).

Se você tem o homebrew, pode substituir o sistema por uma versão mais recente executando brew install homebrew/dupes/less .

    
por 19.06.2016 / 18:28
2

Funciona para mim com

LANG=
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
    
por 06.08.2012 / 16:56
1

Eu pesquisei isso e tentei as seguintes variáveis de ambiente que funcionaram para mim:

export LC_ALL=en_US.UTF-8
export LANG=en_us.UTF-8

Vendo que encontro o LC_ALL em várias respostas diferentes, acho que é o correto. Mas talvez não seja a única resposta certa, é claro que poderia haver respostas mais corretas para essa pergunta.

De qualquer forma, mais alguns googling me deram essa descrição para a variável:

LC_ALL This variable determines the values for all locale categories. The value of the LC_ALL environment variable has precedence over any of the other environment variables starting with LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) and the LANG environment variable.

fonte: link

Levando-me a pensar que esta é a variável de linguagem para governar todas elas:)

    
por 05.11.2014 / 15:45
0

Atualize você [less][1]

Faça isso com cerveja.

brew install homebrew/core/less
    
por 04.05.2018 / 23:22