python--编码与解码

背景

  1. 在使用python过程中,经常会遇到这种进制数据 b'\xe4\xb8\xad\xe6\x96\x87',看起来会一头雾水
  2. 本篇博客介绍python如何处理这些编码

编码

  1. 计算机信息的表示方式只有0,1
  2. 将图像,语言文字,音视频等转换成二进制存储在计算机,称为编码
  3. 将0,1组合并赋予不同的含义,且赋予不同的存储空间的方式又称为编码标准
  4. 不同国家因语言不同,有不同的编码标准
  5. Unicode 为国际统一编码,即将世界所有字符都分配了一个唯一的数字编号
  6. 主流的编码标准还有 ASCII、GB2312、GBK、GB18030, GB2312、GBK、GB18030 为汉字字符编码方案的国家标准。

默认编码

  1. python2默认编码为 ASCII,python3默认编码为 UTF-8
  2. windows默认编码为 GBK,linux默认编码为 UTF-8
  3. windows在保存和读取文件均使用 GBK编码,可以在保存文件时指定编码 encoding='utf-8'

python编码转换

  1. 中间码: 通常用unicode作为中间编码,先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码格式
  2. 编码(encode): 将unicode的字符串转换成二进制数据的过程和规则
  3. 解码(decode): 将二进制数据转换为对应的Unicode字符串
    encode:str --> bytes
    decode:bytes --> str
s = '中国'
print(s.encode('utf-8'))
print(s.encode('utf-8').decode('utf-8'))
>>>
b'\xe4\xb8\xad\xe5\x9b\xbd'
中国

总结

  1. decode实质是把二进制数据(bytes)转化成人看的懂得英文或者汉字
  2. python3默认编码为 UTF-8
posted @ 2020-09-04 10:22  子非鱼焉知鱼之乐丶  阅读(219)  评论(0编辑  收藏  举报