Como tornar 'menos' a compreensão da página de códigos?

1
LC_ALL=ru_RU.CP1251 less ~/t/show_discounts.js

mostra caracteres sem sentido em vez de mostrar este arquivo CP1251 como deveria ser visto.

Como fazer com que less funcione bem com a codificação especificada?

Debian Linux, Terminal Gnome com o sistema configurado como en_US.UTF-8 .

    
por porton 22.02.2018 / 15:27

1 resposta

6

Executando less como

LC_ALL=ru_RU.CP1251 less file

contanto que ru_RU.CP1251 locale exista em seu sistema (veja se LC_ALL=ru_RU.CP1251 locale charmap retorna CP1252) diz less que você está nessa localidade, o que significa que file está codificado nesse conjunto de caracteres e que o terminal usa esse conjunto de caracteres.

Se o emulador de terminal foi iniciado em uma localidade onde o conjunto de caracteres é UTF-8, ele esperará que os caracteres codificados em UTF-8 não saibam o que fazer com os caracteres codificados em CP1251 que less está jogando nele .

Você também precisaria iniciar o emulador de terminal naquele local ou usar luit para fazer a tradução (desde que o conjunto de caracteres do terminal seja UTF-8).

Ou você pode usar iconv para converter o arquivo no conjunto de caracteres do código do terminal:

iconv -f CP1251 < file | less
    
por 22.02.2018 / 15:32