码迷,mamicode.com
首页 > 编程语言 > 详细

python基础之六:编码简介以及python3中的编码

时间:2019-11-21 22:44:34      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:乱码   字节   其他   需要   code   欧洲   bytes   描述   cli   

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代码转换成其他方便传输和存储的编码方式

演示代码:
 1 # 英文
 2 s1 = Beijing
 3 s2 = bBeijing
 4 print(type(s1), type(s2))
 5 
 6 # 中文
 7 s3 = 北京
 8 # s4 = b‘北京‘  # 报错,不能如此写
 9 # 需要编码
10 s5 = s3.encode(utf-8)
11 s6 = s3.encode(GBK)
12 print(s6)  # 4个字节
13 s4 = b\xe5\x8c\x97\xe4\xba\xac # 看到是6个字节表示2个中文,这是utf-8的特性,如果是GBK,就是4个字节了
14 print(s4)

 

 

python基础之六:编码简介以及python3中的编码

标签:乱码   字节   其他   需要   code   欧洲   bytes   描述   cli   

原文地址:https://www.cnblogs.com/funyou/p/11908812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!