Python编码与解码

Py3中,str类型数据在内存中是以unicode编码方式存在的。

但Unicode编码的数据无法用于文件传输,传输时,需要将其转换为bytes类型数据,然后再用其他编码方式编码如:utf-8、gbk等。

s = 'mumu'   # str类型

s = b'mumu'  # types类型

1、编码encode

将str --> types

s1 = 'mumu'

s10 = s1.encode()  # 将s1转换为types类型,为定义编码方式,结果为:b'mumu'

s11 = s1.encode('utf-8')  # 将s1转换为types类型,编码方式为utf-8  b'mumu'

s12 = s1.encode('gbk')  # 将s1转换为types类型,编码方式为gbk  b'mumu'

注意:中文型字符串,结果会转换为  bxd6x23x44  (一个 xfa 表示一个byte,当一个中文转换为两个x00,则表示编码方式为gbk,3个则为utf-8) 

2、解码decode

解析成当前环境能理解的语言(即当前环境是什么编码方式就以什么编码方式进行解码)

s = '大叔'  # Python中字符串类型是以Unicode编码方式存在的
b = s.encode('utf-8')  # 当把编码方式换位‘utf-8’时,则转为了bytes类型,b'xe5xa4xa7xe5x8fx94'
s1 = b.decode('utf-8')  # 解除‘utf-8’编码,则还原为字符串,大叔
s2 = b.decode('gbk')  # 以gbk的方式解码,则会出现乱码,澶у彅

英文字符串无论是‘utf-8’还是‘gbk’其都以一个byte为一个字,所以对于英文,无论哪种解码方式都能成功解码

小结:

  数据类型 str --> types

  编码方式 Unicode --> 其他

  编码:encode

  解码:decode

原文地址:https://www.cnblogs.com/MuMuyom/p/10647824.html