python中coding:utf-8和setdefaultencoding区别

这两个作用不一样,

1.

# coding:utf-8

作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.
PEP 0263 -- Defining Python Source Code Encodings
https://www.python.org/dev/peps/pep-0263/

2.

sys.getdefaultencoding()

是设置默认的string的编码格式

import sys
reload(sys)
sys.setdefaultencoding('utf8')

而python2.x的的defaultencoding是ascii,这也就是大多数Python编码报错:“UnicodeDecodeError: 'ascii' codec can't decode byte ......”的原因。

posted @ 2017-07-10 17:28  悠然现南山  阅读(1252)  评论(0编辑  收藏  举报