python3中的编码与解码

首先,为什么要编码?

我们知道,计算机只能存储二进制串001100011....

如果要计算机存储一个数字7,计算机可以用00000111来表示

如果要存储'a'这个字符呢?肯定也用一个二进制串来表示字符a

这就是字符的编码,即将字符转化成二进制串的过程

那么相反的过程就是解码,即将二进制串转化为字符的过程

上面说到,用一个二进制串来表示字符a,那么具体用多少来表示a呢?

如果用01100001来表示字符a,这种映射方式就叫做ASIIC编码格式

ASIIC格式规定用一个字节来表示一个字符,也就是,最多之能表示256个字符

那么中文字符以及其他语言咋办呢?

unicode是另外一种编码方式,它规定最少用两个字节表示字符,也就是最少能表示65536个字符

这下,全世界语言是都能表示了

但是它在表示英文字母的时候也用两个字节,高字节都是00000000,显然很是浪费

于是出现了utf-8编码格式

它是对unicode的优化,对不同的情况进行了分类

如果是英文字母及常规符号用一个字节表示,中文字符用三个字节表示

可以发现,utf-8编码相对unicode编码在全是英文字符的情况下需要的二进制串可以减半

因此,在网络上传输或者文件存储的时候,都是用utf-8编码

python中的解码与编码实现

首先要了解python中的str与bytes数据类型

猜你喜欢

转载自www.cnblogs.com/jiage666/p/9853786.html