day 08
01.文本字符编码;
计算机只识别机器语言,存储器中也只能存储机器语言
字符编码是指字母、汉字、符号等,通过一串0和1来对应实现文本的快速编辑和存储
02.不同的字符编码
因计算机发展历史问题
最初计算机发明国家只针对本国语言编写了对应的编码格式
后期各国都开始使用计算机,但由于当时的网络环境原因导致各国都独自研发了自己的字符编码格式,如最早美国人发明的ascll,中国研发的gbk,日本研发的shift_JIS等
03.Unicode
计算机发展后期,应网络发展交流的需要,人们发现由于通过一种编码存储的文本只能用该编码进行解码,否则会出现乱码现象,非常不方便,Unicode编码格式应运而生
Unicode格式被称之为万国编码
该格式把所有语言都统一到一套编码中,为每种语言中的每一个字符设定了统一且唯一的二进制编码。解决了不同编码格式之间无法互相转换的问题,满足了跨平台、跨语言进行文本转换、处理的需求。
04.UTF-8
因Unicode编码格式内的所有字符对应的都是等长的16位二进制数,英文所对应的只是在ascll编码格式之前加上了8个0,导致在编写纯英文文本时会占用原本2倍的内存空间。在存储和传输上十分低效,应此需要UTF-8应运而生。UTF-8采用了可变长编码每种语言需要的长度不同给予其不同的长度,如果只写英文就和ascll格式数大小相同,(此处注明:UTF-8的英文部分与ascll完全相同)混合书写也能大大减小文件大小,是现今的通用编码格式。
05.编码和解码
unicode编码 ---》(编码) utf8 从内存到硬盘
utf8 --》(解码) unicode 从硬盘到内存
现在内存只有unicode编码
先今只有unicode编码可以和其他和时间进行互相转换,虽然现在统一用utf-8格式书写文件,但仍有许多从前编写的文件不是utf-8格式
06.python解释器(文本编辑器)解释python代码的流程
1/python解释器相当于文本编辑器,把代码读入python解释器 --》 字符编码 -》 python2默认是ascill,python3默认utf8 --》 上coding头
中文 # gbk编码的中文加
2/识别代码 --》print有意义 --》 语法问题
# coding:gbk # 告诉python解释器用gbk去完成第一步,读入字符
中文
3/产生结果 --》 跑到终端--》字符编码
终端有一个特性:你的电脑是什么编码,就按照什么编码的来,windows终端是utf-8