python中的bytes和str学习
转自:https://blog.csdn.net/lyb3b3b/article/details/74993327
1、介绍
UTF-8
编码规定英文字母系列用1个字节表示,汉字用3个字节表示等等。因此,它兼容ASCII
,可以解码早期的文档。
>>> s = "中文" >>> s '中文' >>> type(s) <class 'str'> >>> b = bytes(s, encoding='utf-8') #编码的时候要指定编码方式 >>> b b'\xe4\xb8\xad\xe6\x96\x87' #\x 代表是十六进制,共有6个十六进制数,即6个字节,每个占用1字节8位,所以每个汉字是3字节编码 >>> type(b) <class 'bytes'>
b
实际上是一串01的组合,但为了在ide环境中让我们相对直观的观察,它被表现成了b'\xe4\xb8\xad\xe6\x96\x87'
这种形式,开头的b
表示这是一个bytes
类型。
字符串类str
里有一个encode()
方法,它是从字符串向比特流的编码过程。而bytes
类型恰好有个decode()
方法,它是从比特流向字符串解码的过程。(都需要指定编码方式)
-
使用
bytes
类型,实质上是告诉Python,不需要它帮你自动地完成编码和解码的工作,而是用户自己手动进行,并指定编码格式。