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

原文地址:https://www.cnblogs.com/yrxns/p/7146872.html