less で日本語を表示したときの文字化けの直し方です。
less の日本語の文字化けのなおし方
less の文字コードを明示的に設定しよう!
セットアップしたばかりの初期のサーバーなど、less で日本語が文字化けするときがよくあります。
文字コードをうまく判別できていない事が原因であれば、下記のコマンドでだいたい治ります。
$ export LESSCHARSET=utf-8
bashrc に書き込んで、初回ログイン時に自動適応
このコマンドを、恒久的に自動適応されるよう、~/.bashrc など、初期設定ファイルに記載しておきましょう。MacOSであれば、~/.zshrc かもしれません。
# bashrc を開く
$ vim ~/.bashrc
# 中に、デフォルトの文字コードを追記しておく
export LESSCHARSET=utf-8
なお、設定内容を即時に適応するときは、source コマンド(.bashrc の場合)で反映します。
$ source ~/.bashrc
shift-jis, euc-jp など日本語特有文字コードの場合
上記を行っても、shift-jis, euc-jp でエンコードされた日本語は、依然として文字化けしてしまいます。less はこのようなエンコーディングに対応していないからです。
# Shift-JIS で書かれたファイル。
$ less sjis.txt
<93><FA><96>{<8C><EA><93><C1><97>L<95><B6><8E><9A><83>R<81>[<83>h<82>͕<B6><8E><9A><89><BB><82><AF><82><B5><82>₷<82><A2><82>̂ő????I<82><CC>
ファイル自体を utf-8 で保存しなおすのがよい
vim などで文字コードをutf-8 に変換してファイルを保存しなおしたり、nkf コマンド(参考)で変換すればよいのですが、それがいちいち手間な場合は、iconv コマンドが便利です。
パイプで less に流し込みます。
# 直接 less に流し込みます
$ iconv -f SJIS sjis.txt -t utf-8 | less