Python3 中的bytes 与 string之间的转换

Python3 最大的特性是对文本(text)和二进制数据(binary data)做了更清晰的区分

  -文本总是unicode, 由Str类型表示

  -二进制数据则由bytes类型表示

那什么是Unicode 什么是bytes呢?

-首先计算机存储数据就是以二进制的数据存储的,就是bytes;所以计算机存储文件、视频等,我们必须对其进行编码(encode()),将其转化为bytes再存储

-Unicode是字符集,不是字符编码。Unicode把全世界的字符集都搜集并且编号了,但是没有规定具体的编码规则。编码规则有UTF-8、GBK之类的

Python3 不会以任何隐士的方式混用str和bytes。正是这使得两者的区分特别清晰,你不能凭借字符串和字节包(但是在python2中两者是不区分的,是可以拼接的),也无法在字节包里搜索字符串(反之亦然)。也不能将字符串传入参数为字节包的函数(反之亦然)

相互转换:

  将String 转化为bytes首先需要进行编码(encode).而encode是可以使用许多不同的encoding的(即使用不同的编码规则进行编码);将bytes类型转化为String需要进行解码decode,decode也是有许多不同的解码贵族

# coding: UTF-8
msg = "我爱北京天安门"

print(msg.encode()) # 将string转换为二进制
"""再将二进制转换为字符串"""
print(msg.encode().decode()) # 这样就将二进制转为了string 注意UTF-8 为编码规则 Unicode为字符集

注意:

Unicode 和 UTF-8的区别:

Unicode是【字符集】

UTF-8是【编码规则】

其中

-字符集:为每一个【字符】分配一个唯一的ID(学名为码位code point)

-编码规则:将【code point】转换为字节序列的规则(编解码规则)

参考资料:

https://blog.csdn.net/sinat_41104353/article/details/79283619 尊重原创

posted @ 2020-08-05 23:50  GalaxyStar  阅读(1462)  评论(0编辑  收藏  举报