PythonのスクリプトでDBから日本語を含む文字列を扱った際、『UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3』といったエラーが出た。 これは、Pythonでは明示的に指定しないとデフォルトエンコーディングがasciiになっているため、UTF-8がそのまま利用できないのが理由のようだ。
blacknon@BS-PUB-UBUNTU-01:~$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
以下の記述をスクリプトに追記することで、デフォルトのエンコーディングがUTF-8方式になるので、それで対処できる。
import sys
reload(sys)
sys.setdefaultencoding('utf-8')