VPS環境(CentOS7)に構築したPython実行環境で、日本語を扱うプログラムを実行すると文字化けが発生した。

原因を調べると、CentOS7のlocale設定によるものだったので、解決方法を紹介する。

ロケールの確認

まず、SSHでサーバーへログインし以下のコマンドを実行する。

locale

すると現在設定されている情報が出力されるのだが、この時「LANG=C」など、「utf8」以外のものが設定されていると、Pythonできちんと日本語を処理できないようだ。

ロケール設定の変更

exportコマンドで環境変数LANGの設定を書き換えることもできるが、これは一時的な変更となってしまうので、以下のとおり恒久的に設定を変更する。

vim ~/.bash_profile

# 以下の設定を追加
export LANG=ja_JP.utf8

bash_profileの変更が終わったら一度ログアウトし、再ログインする。

再度localeコマンドを実行し「LANG=ja_JP.utf8」と出力されればOK。

あとはPythonのprint関数などで正しく日本語が出力されるかどうかを確認してみるといい。