Linuxでどこぞから持ってきたPython(2.x系)のスクリプトをキックした際、「UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
」というエラーが出てしまうことがある。
これは現在スクリプトをキックしているPythonのデフォルトが'ascii'になっていることが原因のようなので、これを'utf-8'に変更してやることで暫定対応ができる(ほんとはソース直せって話なんだろうが)。
blacknon@BS-PUB-UBUNTU-01:~$ python -c 'import sys;print sys.getdefaultencoding()'
ascii
以下のコマンドで、PythonのデフォルトをUTF-8に変更できる。
sudo sh -c 'echo "import sys\nsys.setdefaultencoding('\''utf-8'\'')" >> /usr/lib/python2.7/sitecustomize.py'
blacknon@BS-PUB-UBUNTU-01:~$ python -c 'import sys;print sys.getdefaultencoding()'
ascii
blacknon@BS-PUB-UBUNTU-01:~$ sudo sh -c 'echo "import sys\nsys.setdefaultencoding('\''utf-8'\'')" >> /usr/lib/python2.7/sitecustomize.py'
blacknon@BS-PUB-UBUNTU-01:~$ python -c 'import sys;print sys.getdefaultencoding()'
utf-8