less の日本語の文字化けの直し方

最終更新:2022-04-16 by Joe

less で日本語を表示したときの文字化けの直し方です。

less の日本語の文字化けのなおし方

less の文字コードを明示的に設定しよう!

セットアップしたばかりの初期のサーバーなど、less で日本語が文字化けするときがよくあります。

文字コードをうまく判別できていない事が原因であれば、下記のコマンドでだいたい治ります。

export LESSCHARSET=utf-8

このコマンドを、恒久的に適応されるよう、~/.bashrc に記載しておきましょう。

$ vim ~/.bashrc



# デフォルトの文字コードを設定
export LESSCHARSET=utf-8

/.bashrc の更新後、これを明示的に適応するときは、suorce コマンドで反映します。

$ 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>

vim などで文字コードをutf-8 に変換してファイルを保存しなおしたり、nkf コマンド(参考)で変換すればよいのですが、それがいちいち手間な場合は、iconv コマンドが便利です。パイプで less に流し込みます。

# 直接 less に流し込みます
$ iconv -f SJIS sjis.txt -t utf-8 | less