字符编码

字符编码:人识别的语言不机器识别的语言转换的媒介
字符与字节:字符占多少字节,字符串转换
文件操作:操作硬盘中的一块区域(读写)


什么是字符编码;
人类能识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与计算机之间的交互,
一定要一个媒介,进行两种标识符的转化(两种标识符的对应关系)
对应关系形成的结构称之为:编码表

乱码:存取数据与读数据采用的编码表不一致

软件打开文件读取数据的流程;
1,打开文件
2,计算机发送一个打开文件的指令,来打开文件
3.读取数据渲染给用户


python解释器打开.py文件
1,打开软件(python解释器)
2,往计算机发送一个打开文件的指令,来打开文件
3,逐行解释打开的文件内容(存取编码不一样,无法正常解释,崩溃),将执行结果展示给用户

解释失败的原因:
py2默认安asicc来解释文件内容,py3默认按照utf-8来解释文件内容

文件开头:encoding:编码表
功能:告诉python解释器按照什么编码来解释文件内容

unicode与utf-8的关系
unicode:用2个字节存储汉字,用2个字节来存储英字母。占有空间较多,读取效率极高
utf-8:是用3-6个字节来储存汉字,用一个字节来存储英字母,占有空间较少,读取效率低
总结:内存都是按照unicode存储数据,硬盘和cpu采用utf-8来存储数据

unicode与utf-8采用的是一张unciode编码表,utf-8是unciode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小),传输速度跟快


unciode三大字符串
r''原义字符串:不对字符串内存做任何操作
r'abc abc'=======>>'abc abc'
u''默认字符串:u''.encode('utf-8')编码d''字节字符串:d''.decode('utf-8')解码

原文地址:https://www.cnblogs.com/wangtenghui/p/10600314.html