文本总是unicode字符集,用str类型表示。
二进制数据则由bytes表示。(通过socket在网络上传输数据时必须要用二进制格式)
Python不会以任何隐式的方式混用str和bytes,所以我们不能在代码中拼接字符串和字节包
当然字符串和字节,是可以被相互转换的。
借用一个其他的图来说明转换关系:
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,待测)
所有巧合的是要么是上天注定要么是一个人偷偷的在努力。