目录
1.ASCII码
ASCII码 最多能表示127个英文字符
'0' 48 'A' 65 'a' 97
'1' 49 'B' 'b' 98
'2' 50
'3' 51
'9' 57
依次类推
标准键盘:101键盘 有101个键 能敲出来的字符都算
从键盘输入的每一个键都对应一个ASCII码
只能表示我们所说的127个英文字符
问题是汉字,汉字太多,就需要扩展跟多的位数来增加数值的范围
2.GB2312 国标
每个汉字两个字节 一个字节占8位
3.每个国家都有自己的编码
混乱
4.Unicode码 万国码
冗余,太多了
5.UTF-8
把Unicode字符根据不同的数字大小编码成1-6个字节
英文字母 1个字节
汉字 3个字节
生僻的字符 4-6个字节
文本包\大量的英文字符 用UTF-8节省空间
这是一条华丽的分割线
6.计算机系统通用的字符编码工作方式:
计算机内存:Unicode码
保存到硬盘上或者是传输的时候:UTF-8
保存到硬盘上也可以用Unicode 但是太占内存了
(1)用记事本编辑的时候,从文件读取的 UTF-8 字符被转换为 Unicode 字符到内存里,编辑完成后,保存的时候再把 Unicode 转换为 UTF-8 保存到文件:rw-file-utf-8
(2)浏览网页的时候,服务器会把动态生成的 Unicode 内容转换为 UTF-8 再传输到浏览器:web-utf-8
所以你看到很多网页的源码上会有类似的信息,表示该网页正是用的 UTF-8 编码。
首先要搞清楚,字符串在 Python 内部的表示是 unicode 编码,因此,在做编码转换时,通常需要以 unicode 作为中间编码,即先将其他编码的字符串解码(decode)成 unicode,再从 unicode 编码(encode)成另一种编码。
1.decode:其它码-->unicode
decode 的作用是将其他编码的字符串转换成 unicode 编码,如 str1.decode(‘gb2312’),表
示将 gb2312 编码的字符串转换成 unicode 编码。
2.encode:unicode-->其它码
encode 的作用是将 unicode 编码转换成其他编码的字符串,如 str2.encode(‘gb2312’),表
示将 unicode 编码的字符串转换成 gb2312 编码
先编码再解码