原因是:python2的str默认是ascii编码,和unicode编码冲突,解决方法是设置utf-8;
使用 Python3,因为 Python3 默认使用 UTF-8 编码。
import sys
reload(sys)
sys.setdefaultencoding('utf8')
延伸知识:
Unicode 编码系统的发明是为了统一各国文字的编码,因此把它称为万国码。Unicode 为每种语言设置了唯一的二进制编码表示方式,也就是说无论哪个国家的语言,都可以在 Unicode 上找到对应的代码。因此,当不同的编码系统进行相互转换的时候,可以利用 Unicode 做一个“中介”。
其他编码系统到 Unicode 的转换过程我们称为解码(decode),将 Unicode 转换为其他编码系统的过程称之为编码(encode)。例如 A 编码需要转换为 B 编码,过程如下:
A编码 -> decode(A) -> Unicode -> encode(B) -> B 编码
参考文档:
1、https://blog.csdn.net/Zhou_Dao/article/details/104235574
2、https://www.jianshu.com/p/5017d8342dd2
3、https://blog.csdn.net/Airy_/article/details/107118930