知识管理笔记
编码的发展和规范![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/69b1721d50f3ef1815ce5201cc54bd1e.png)
第0,计算机是有自己的工作区的,这个工作区被称为“内存”。数据在内存当中处理时,使用的格式是Unicode,统一标准。
Python3当中,程序要处理我们输入的字符串,在此都是默认使用Unicode编码的。所以你可以中英文都输入
第1,数据在硬盘上存储,或者是在网络上传输时,用的是UTF-8,因为省空间
第2,一些中文的文件,中文的网站,还在使用GBK,和GB2312。
第3,UTF-8和Unicode可以非常轻易地按照一个规则来互相转换(规则内容不在教学范围之内,而且几乎没有应用场景,但如果你真的想知道,可自行搜索学习。)
print('吴枫'.encode('utf-8'))
print('吴枫'.encode('gbk'))
print('ABC'.encode('ASCII'))
print(b'\xce\xe2\xb7\xe3'.decode('gbk'))
输出
b’\xe5\x90\xb4\xe6\x9e\xab’
b’\xce\xe2\xb7\xe3’
b’ABC’
吴枫
##编码的结果,最前面有一个b,意思是bytes(字节)类型的数据。
所谓的编码,其实本质就是把字符串类型的数据,利用不同的编码表,转换成bytes类型的数据。
你看到许多“\x”,它们是分隔符,用来分隔一个字节和另一个字节。
经常会看到网址里面有好多的%,它们也是分隔符,替换了Python中的"\x"。比如像下面这个:
https://www.baidu.com/s?wd=%E5%90%B4%E6%9E%AB
print('k'.encode('ASCII'))
输出
b’k’
看到大写字母K被编码后还是K,但这两个K对计算机来说意义是不同的。前者是字符串,采用系统默认Unicode编码,占两个字节。后者则是bytes类型的数据,只占一个字节。