python基础之六:编码简介以及python3中的编码
Posted 四方游览
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础之六:编码简介以及python3中的编码相关的知识,希望对你有一定的参考价值。
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),简单描述就是:
unicode 32位 4个字节 表示一个字符
utf- 8 1个英文 8位,1个字节
欧洲 16位 两个字节 表示一个字符
亚洲 24位 三个字节 表示一个字符
亚洲 16位 两个字节 表示一个字符
2、python3 中的编码
str类型的数据,是以unicode(32位表示一个字符)的形式存储到内存中,但是该方式编码不能存储到硬盘或者在网上传输,
于是就可以介绍3中的另外一个数据类型bytes,使用encode(‘utf-8/gbk/gb2132/等‘)函数,将str转换成bytes类型,
实际上就是将unicode代码转换成其他方便传输和存储的编码方式
1 # 英文 2 s1 = ‘Beijing‘ 3 s2 = b‘Beijing‘ 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‘xe5x8cx97xe4xbaxac‘ # 看到是6个字节表示2个中文,这是utf-8的特性,如果是GBK,就是4个字节了 14 print(s4)
以上是关于python基础之六:编码简介以及python3中的编码的主要内容,如果未能解决你的问题,请参考以下文章
Python3中字符串的编码与解码以及编码之间转换(decodeencode)