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 ......”的原因。