Python FAQ
来自Fantasy的维基百科
设置默认字符集
Python2的string默认为bytes类型,改为UniCode,然后使用UTF-8编码即可避免频繁的检查和转码操作。 在Lib/site.py里查找: encoding = "ascii" # Default value set by _PyUnicode_Init() 在下面加上一行 encoding = "utf-8" 以后基本上所有的乱码问题和EncodeError都会自动消失。
Python3的做法:是把 sys.setdefaultencoding("ascii") 改成了 "utf-8"。