Como posso paginar um arquivo UTF-8 e ver os caracteres certos?

1

Se eu usar cat em um arquivo contendo UTF-8, ele será exibido corretamente:

% cat /tmp/sample
<concept code="endangeredLanguage">
  <description value="The language is endangered at the given date"@en/>
  <description value="La lengua está en vías de extinción en la fecha dada"@es/>
  <description value="O idioma está em vias de extinção na data indicada"@pt/>
  <description value="La langue est menacée à la date indiquée"@fr/>
  <description value="ある時点でその言語は絶滅寸前である"@ja/>
  <description value="De taal is bedreigd met uitsterven op de gegeven datum"@nl/>
</concept>

Mas se eu usar "less", os caracteres não ASCII serão ignorados:

% less /tmp/sample
<concept code="endangeredLanguage">
  <description value="The language is endangered at the given date"@en/>
  <description value="La lengua est<C3><A1> en v<C3><AD>as de extinci<C3><B3>n en la fecha dada"@es/>
  <description value="O idioma est<C3><A1> em vias de extin<C3><A7><C3><A3>o na data indicada"@pt/>
  <description value="La langue est menac<C3><A9>e <C3><A0> la date indiqu<C3><A9>e"@fr/>
  <description value="<E3><81><82><E3><82><8B><E6><99><82><E7><82><B9><E3><81><A7><E3><81><9D><E3><81><AE><E8><A8><80><E8><AA><9E><E3><81><AF><E7><B5><B6><E6><BB><85><E5><AF><B8><E5><89><8D><E3><81><A7><E3><81><82><E3><82><8B>"@ja/>
  <description value="De taal is bedreigd met uitsterven op de gegeven datum"@nl/>
</concept>

presumivelmente porque menos é tratado como se fossem binários. Como posso paginar a saída, mas ainda ver os caracteres adequados?

    
por Scott Deerwester 18.02.2016 / 00:00

2 respostas

2

É explicado no less FAQ Pode exibir menos caracteres de idioma não inglês?

Less has two ways to display non-English characters. If your system uses a non-ASCII single-byte character set, you should set up your system with the correct "locale" settings. If your system does not support setlocale, you can set the LESSCHARSET or LESSCHARDEF environment variable to tell less what language you are using. See the section "NATIONAL CHARACTER SETS" in the man page for details.

If your system supports the UTF-8 encoding of Unicode for non-ASCII text, as many modern systems do, you should either set your locale to something that includes the "UTF-8" or "UTF8" (either uppercase or lowercase is ok), or set LESSCHARSET to "utf-8".

    
por 18.02.2016 / 00:13
2

Adicione a seguinte variável ao seu ambiente:

export LESSCHARSET=utf-8
    
por 18.02.2016 / 00:13