python2 bytes 与str 傻傻分不清
python3 bytes 与 str 区分了
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。
文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。
Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。
你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。这是件好事。
python3 socket 网络传输 使用二进制,python2 可以使用str
code
# Author:黑猴子
msg = "我爱黑猴子的家"
print(msg)
#转成二进制
print(msg.encode(encoding="utf-8"))
#转成文本字符串
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
运行
我爱黑猴子的家
b'\xe6\x88\x91\xe7\x88\xb1\xe9\xbb\x91\xe7\x8c\xb4\xe5\xad\x90\xe7\x9a\x84\xe5\xae\xb6'
我爱黑猴子的家
网友评论