情景描述:
平时工作中经常碰到编码、解码、乱码……类似的问题不胜其烦,如街边小广告一般异常讨厌,需要花时间好好整理一番,“一”绝后患。
str(s)与unicode(s)
str(s)和unicode(s)是两个工厂方法,分别返回str字符串对象和unicode字符串对象;
str(s)是s.encode(‘ascii’)的简写;
unicode(s)是s.decode(‘ascii’)的简写;
1 | str |
###
1 | In [20]: '中文' |
问题:1
2
3
4
5
6
7In [41]: '中文'.encode('utf8')
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-41-94bb800b6371> in <module>()
----> 1 '中文'.encode('utf8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
解决办法:1
2
3import sys
reload(sys)
sys.setdefaultencoding('utf-8')