在用python的过程中,有个很蛋疼的问题就是python有python 2.X和python3.X,现在基本上2.X已经不更新了,所有后面学习的直接学3.X就可以了,但是以前一些项目是2.X的,搞清楚里面的编码还是很有必要的。

Python 2.X默认是ASCII编码的,而Python 3.X默认是utf-8。字符串在2.X有二种类型(str()和unicode()):

s1="str"
s1=u"unicode"

3.X里面的字符串只有一种str()类型,这里的str()类型等价于py3里面的unicode类型:

s1="str"
s1=u"str"

在3.X也新增了bytes类型:

s3= b'bytes'

这个bytes主要处理二进制数据。str对象和bytes对象可以使用encode()/decode()方法相互转化。

b=b'python'
s = b.decode()
print (type(s))

b2=s.encode()
print (type(b2))

<class 'str'>
<class 'bytes'>