python3的str和bytes

python3的str和bytes

简介

python 3与python 2的一个区别就是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区别特别清晰。在python 2中你可以拼接字符串和字节包,但是在python 3中你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。在python 3的websocket通信中不管传输的是文字类型还是其它类型都会转换成二进制数据进行传输。
在这里插入图片描述
字符串可以编码成字节包,而字节包可以解码成字符串

>>> ‘€20’.encode(‘utf-8’) #编码
b’\xe2\x82\xac20’
>>> b’\xe2\x82\xac20’.decode(‘utf-8’) #解码
‘€20’
无论是编码还是解码都必须指定原来的编码格式。

python 3默认编码解码格式utf-8

msg=“我爱你”
print(msg)
print(msg.encode(‘utf-8’))
print(msg.encode().decode())

结果:

我爱你
b’\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0’
我爱你

猜你喜欢

转载自blog.csdn.net/u011659193/article/details/82990225