
UTF-8 を含むファイルに対して cat を使用すると、正しく表示されます。
% 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>
しかし、「less」を使用すると、非 ASCII 文字はエスケープされます。
% 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>
おそらく less がそれらをバイナリとして処理するためです。出力をページ分割しながら、適切な文字を表示するにはどうすればよいでしょうか?
答え1
less
FAQで説明されていますless は英語以外の言語の文字を表示できますか?
Less には、英語以外の文字を表示する方法が 2 つあります。システムで ASCII 以外のシングルバイト文字セットが使用されている場合は、正しい「ロケール」設定でシステムを設定する必要があります。システムが setlocale をサポートしていない場合は、
LESSCHARSET
またはLESSCHARDEF
環境変数を設定して、使用している言語を less に伝えることができます。詳細については、マニュアル ページの「NATIONAL CHARACTER SETS」セクションを参照してください。多くの最新システムと同様に、システムが非 ASCII テキストの Unicode の UTF-8 エンコードをサポートしている場合は、ロケールを「UTF-8」または「UTF8」(大文字でも小文字でもどちらでも OK) を含むものに設定するか、
LESSCHARSET
「utf-8」に設定する必要があります。
答え2
次の変数を環境に追加します。
export LESSCHARSET=utf-8