首先,为什么要编码?
我们知道,计算机只能存储二进制串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数据类型