2011/12/26

pythonを日本語(utf-8)対応にするには

pythonでprintなどのなかに日本語をいれたい時そのまま入れてしまうと
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7
というようなエラーが出てしまう。これは文字コードがutf-8ではなくasciiになっているため。

参考にしたサイト
http://zensan.blogzine.jp/blog/2010/01/sitecustomizepy.html

http://d.hatena.ne.jp/SumiTomohiko/20070120/1169300624

http://d.hatena.ne.jp/motie/20090615/sitecustomize20090615

しかし、ちょっと書いてあることとは違った。(ubuntu10.04使用)

/usr/lib/python2.6の中にsitecustomize.pyが直接、またデフォの状態でもうあった。

よってバックアップをして退避させてsitecustomize.pyを次のように編集


(ただコピペをしただけなのでインデントに注意!!)


# install the apport exception handler if available
try:
  import apport_python_hook
  except ImportError:
  pass
else:
  apport_python_hook.install()

      ↓↓↓

# install the apport exception handler if available
try:
  import apport_python_hook
  import sys
  sys.setdefaultencoding('utf-8')
except ImportError:
  print('ImportError')
else:
  apport_python_hook.install()


確認のため

$ python
Python 2.6.5
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.getdefaultencoding()
utf-8

きちんとutd-8になってるからおk

0 件のコメント:

コメントを投稿