day08
字符编码
字符(存储了信息的东西)编码()
键盘 发送的是电流 --> 主机(内存)接收到电流(当作01010101010) --》 显示屏 接收电流(当作01010101010 --》键盘)
文本编辑器存储信息的过程
文本编辑器 --》 写文本 --》 存储信息
显示屏(内存) --》(转换)硬盘
硬盘中无论躺着什么格式的编码文件,unicode都可以识别,假设你看日本的片子,从硬盘中读取fuck编码,然后unicode识别,unicode帮你转换成gb2312,解决了乱码的问题,用unicode存
内存中unicode取,存用utf8存(硬盘),全世界的人写代码/写文件都是用utf8
gb2312和gbk的区别
gb2312 --》 常用词
gbk --》 所有字
用什么编码写,就用什么编码读
写用utf8,存用utf8,读用gbk--》乱码
写用utf8,存用gbk,--》乱码
编码和解码
unicode编码 ---》(编码) utf8 从内存到硬盘
utf8 --》(解码) unicode 从硬盘到内存
python解释器(文本编辑器)解释python代码的流程
1/python解释器相当于文本编辑器,把代码读入python解释器 --》 字符编码 -》 python2默认是ascill,python3默认utf8 --》 上coding头
2/识别代码 --》print有意义 --》 语法问题
3/产生结果 --》 跑到终端--》字符编码
python2
python2有两种存储变量的形式,第一种:unicode;第二种:按照coding头来的
假设python2用utf8存储x='中文'
,当你print(x)
的时候,终端接收gbk的变量x,但是windows终端编码是utf8,会乱码
python3
python3只有一种存储变量的形式,unicode
python3用unicode存储,终端接收的是unicode,widonws终端编码是utf还是gbk不重要,不会乱码