1、常见的四种编码方式的编码过程:

ascii
    A : 00000010 8位 一个字节
unicode

     A : 00000000 00000001 00000010 00000100 32位 四个字节
               中:00000000 00000001 00000010 00000110 32位 四个字节
utf-8

     A : 00100000 8位 一个字节
    中 : 00000001 00000010 00000110 24位 三个字节
gbk

     A : 00000110 8位 一个字节
    中 : 00000010 00000110 16位 两个字节
1),各个编码之间的二进制,是不能互相识别的,会产生乱码。
2),文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

3),简单描述就是:

  ascii :  8位 1字节  表示1个字符
  unicode  32位  4个字节  表示一个字符
  utf- 8  1个英文 8位,1个字节
          欧洲 16位   两个字节  表示一个字符
          亚洲 24位   三个字节  表示一个字符
  gbk    1个英文 8位,1个字节
          亚洲 16位   两个字节  表示一个字符

2、python3 中的编码

  str类型的数据,是以unicode(32位表示一个字符)的形式存储到内存中,但是该方式编码不能存储到硬盘或者在网上传输,
于是就可以介绍3中的另外一个数据类型bytes,使用encode('utf-8/gbk/gb2132/等')函数,将str转换成bytes类型,
实际上就是将unicode代码转换成其他方便传输和存储的编码方式

演示代码:

 # 英文
s1 = 'Beijing'
s2 = b'Beijing'
print(type(s1), type(s2)) # 中文
s3 = '北京'
# s4 = b'北京' # 报错,不能如此写
# 需要编码
s5 = s3.encode('utf-8')
s6 = s3.encode('GBK')
print(s6) # 4个字节
s4 = b'\xe5\x8c\x97\xe4\xba\xac' # 看到是6个字节表示2个中文,这是utf-8的特性,如果是GBK,就是4个字节了
print(s4)

最新文章

  1. angularJs 指令的理解
  2. python 中的decorator
  3. VSFTP安装
  4. UIView 的autoresizingMask属性
  5. xml Schema import
  6. linux网站目录及Apache权限的设置
  7. 删除ecshop云服务及授权关于官方等信息
  8. (转)要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。”的解决办法。
  9. [设计模式] 4 原型模式 prototype
  10. js零碎整理
  11. NPOI+反射 实现快速导出
  12. Android 源代码结构
  13. java.sql.SQLException: The SQL statement must not be null or empty.这个错误
  14. 基于SurfaceView的可拖动视频控件
  15. UVA315 Network 连通图割点
  16. linux:查询软件是否安装以及删除
  17. 128. Longest Consecutive Sequence最长连续序列
  18. 更换SSL证书
  19. JavaWeb总结(九)
  20. Git远程操作详解(转)

热门文章

  1. JSP还有必要学吗?这篇文章告诉你
  2. 判断一个类型是否为可空类型 System Nullable
  3. JavaScript 内存回收机制
  4. Ajax 跨域请求,Chrome 无法显示 Set-Cookie
  5. 集成Spring-Boot与gRPC,grpc-spring-boot-starter
  6. Web应急:门罗币恶意挖矿
  7. 猫狗识别——PyTorch
  8. C# vb .NET读取识别条形码线性条码UPC-A
  9. JAVA中的四种JSON解析方式详解
  10. 隐马尔科夫模型(Hidden Markov Models) 系列之五