CentOS7で日本語が文字化けする場合の対応方法について

UTF8

Dockerで公式のCentOS 7をデフォルトで使用した場合など、UTF-8日本語のが文字化けする場合があります。

環境変数LANG

Dockerで公式のCentOS 7をデフォルトで使用した場合などで、環境変数LANGが未定義の場合があります。 この場合、日本語UTF-8のテキストファイルは、vi、viewやlessコマンドでは、文字化けします。 catやmoreは文字化けしないはずです。

例 catやmoreコマンドで以下のように表示される日本語ファイル test.txt がある場合
あいうえお
viやviewでは以下のように表示されます。
~A~B~A~D~A~F~A~H~A~J
lessでは以下のように表示されます。
<E3><81><82><E3><81><84><E3><81><86><E3><81><88><E3><81><8A>
test.txt (END)

このような場合、以下を実行して環境変数LANGが定義されているか確認します。

env | grep -i LANG
実行して何も表示されない場合、LANGが設定されていませんので設定する必要があります。

例 UTF-8の英語(米)が設定されている場合

env | grep -i LANG
LANG=en_US.UTF-8

設定方法

locale -aコマンドで、ja_JP.UTF-8があるかどうか確認します。

locale -a
無い場合は、環境変数LANGにen_US.UTF-8を指定するか、ja_JP.UTF-8の作成後、ja_JP_.UTF-8を指定します。

en_US.UTF-8を指定する場合は、以下を実行します。

LANG=en_US.UTF-8
export LANG

ja_JP.UTF-8を指定する場合は、以下を実行します。

LANG=ja_JP.UTF-8
export LANG