Pythonスクリプトで『UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3』というエラーがでたときの対処

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'
Sponsored Links

以下の記述をスクリプトに追記することで、デフォルトのエンコーディングがUTF-8方式になるので、それで対処できる。

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

 

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*