首页 > 其他 > 详细

编码进阶

时间:2020-09-06 21:34:27      阅读:83      评论:0      收藏:0      [点我收藏+]
  • ANSII码:包含英文,数字,和特殊字符与01之间的关系
    一个字符一个字节
  • GBK:只包含中文,英文字母,数字,特殊字符与01之间的关系
    一个字符两个字节
  • Unicode:万国码,有世界上所有语言与01之间的关系
    一个字符四个字节
  • UTF-8:改良版万国码,根据语言不通调整字节大小
  1. 不同密码本之间不能互相识别
  2. 数据在内存中全部是以Unicode编码,但是当你的数据用于网络传输或储存在硬盘中,必须是以非Unicode编码(UTF-8,GBK)
  3. 基于第一和第二条,再进行网络传输时内存中要用非Unicode方法存储,对于Python来说,有了以下的类型
    • bytes
      • 英文:
        str:
        内存中编码方式:Unicode
        表现:‘hello‘
        bytes:
        内存中编码方式:非Unicode
          b=b‘hello‘
          print(b,type(b))
          #b‘hello‘ <class ‘bytes‘>
        
      • 中文
        str:
        内存中的编码方式:Unicode
        表现:‘中国‘
        bytes:
        内存中的编码方式:非Unicode #UTF-8
        表现:‘中国‘
        bytes:
           b=‘中国‘
           b=b.encode(‘utf-8‘)  #编码
           print(b,type(b))
           #b‘\xe4\xb8\xad\xe5\x9b\xbd‘ <class ‘bytes‘>
           b=b.decode(‘utf-8‘)
           print(b,type(b))     #解码
           #中国 <class ‘str‘>
        
  4. utf-8和gbk之间的转化都是通过Unicode运行的

编码进阶

原文:https://www.cnblogs.com/Alan-kx/p/13623654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!