UnicodeEncodeError
UnicodeEncodeError は print文とかで日本語の文字列を結合しようとしたときに出てくるエラー。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 17-19: ordinal not in range(128)
日本語はASCIIじゃないよ!的な感じ。
対策は2つ。
TextIOWrapper を使う
Pythonのコードの先頭のほうに、以下を記載すればOK!
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
環境変数を設定する
環境変数 PYTHONIOENCODING に utf-8 と設定する。
$ export PYTHONIOENCODING=utf-8
これで UnicodeEncodeError エラーが発生しなくなる。
実行時のみしていするのもできる。
$ PYTHONIOENCODING=utf-8 python3 hoge.py
以上。