文本总是unicode字符集,用str类型表示。

二进制数据则由bytes表示。(通过socket在网络上传输数据时必须要用二进制格式)

Python不会以任何隐式的方式混用str和bytes,所以我们不能在代码中拼接字符串和字节包

当然字符串和字节,是可以被相互转换的。

借用一个其他的图来说明转换关系:

python bytes数组 python bytes str_数据


string 通过encode 编码成 bytes 类型,而bytes格式的数据又可以通过decode来解码成str类型。

encode 用来对string格式个数据进行编码:

str = '你好'
str.encode('UTF-8') -->表示源数据是什么格式的,不指定的话,默认为UTF-8
b'\xe4\xbd\xa0\xe5\xa5\xbd'

 

decode 用来对bytes格式的数据进行解码:

str = b'\xe4\xbd\xa0\xe5\xa5\xbd'
str.decode('UTF-8') -->表示把二进制数据解释成 什么格式的数据(默认UTF-8,待测)

 

所有巧合的是要么是上天注定要么是一个人偷偷的在努力。