从某种意义上说,Python中只有两种数据类型:str和bytes。

 

从str转换成bytes,称为编码

从bytes转换为str,称为解码

 

str是以Unicode方式编码的
byte可以以utf8或者gbk等形式编码

 

一、str转bytes(编码)

方法一:通过bytes()方法

s = 'hello世界'
b = bytes(s, 'utf8')

 

在utf8中,一个汉字占三个字节

print(b) # b是utf8编码的bytes

  

上边代码执行结果如图:

python中的字符编码和str与bytes类型转换

 

 方法二:通过str的内置函数encode()

b2 = s.encode('utf8')
print(b2)

  

二、bytes转str(解码)

方法一:用str()方法

s = str(b2, 'gbk')
print(s)  # 会出现汉字乱码

  

乱码原因:

b2是用utf8编码成bytes的,必须用utf8解码成str
str数据类型没有编码规则,是Unicode(万国码)

方法二:用bytes的内置函数decode()

s2 = b2.decode('utf8')
print(s2)

  

用什么格式编码,就要用什么格式解码

相关文章:

  • 2021-12-23
  • 2022-12-23
  • 2021-10-16
  • 2022-02-04
  • 2022-01-20
猜你喜欢
  • 2022-01-05
  • 2022-12-23
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-24
相关资源
相似解决方案