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~Jlessでは以下のように表示されます。
<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