import base64
x=u"121kjk"
print(x,type(x))
y=x.encode("utf-8","strict")
print(y,type(y))
z=base64.b64encode(y)
print(z,type(z))
z1=base64.decodebytes(z)
print(z1,type(z1))
z2=z1.decode("utf-8")
print(z2,type(z2))
121kjk <class 'str'>
b'121kjk' <class 'bytes'>
b'MTIxa2pr' <class 'bytes'>
b'121kjk' <class 'bytes'>
121kjk <class 'str'>
bytes类型前面多了个b,感觉和str没有什么区别啊?请教两者的区别,谢谢
你用的是python3, 那个前缀u不用加,不然反而误导:
你加些中文就能看出区别了:
比如这里utf-8以3个字节表示一个汉字,最后两个xx因为是在ascii集合里,所以会打印为可读字符