字符编码
字符编码:字符转换成/编码数字,
编码的过程一定要遵循一个标准,该标准称之为字符编码表
字符---编码---》数字
字符《---解码---数字
文本文件:文件内写的是字符的文件
········1.先启动文本编辑器、
2.文件编辑器将文件内容读入内存
3.将读入内存的内容显示到屏幕上python解释器读一个文件的三个过程
python解释器执行一个python文件的三个过程
1.先启动文本编辑器、
2.python解释器将文件内容读入内存
3.解释执行刚刚存入内存的代码,识别python语法
ASCII只有英文字符与数字的对应关系
8个byt对应一个英文字符
1个英文字符对应一个bytes
GBk表:只能识别中文字符和英文字符
用16个2进制位 一个英文===》1bytes
一个中文===》2个bytes
Unicode:(内存中默认识别该编码)用2个bytes表示一个字符
1.可以识别万国字符
2.与各种字符编码的二进制数字都有对应关系
UTF-8:为了弥补Unicode不足之处,Unicode转换版本
一个英文===》1bytes
一个中文===》3个bytes
字符---编码---》数字
字符《---解码---数字
Unicode二进制======编码======》utf-8二进制
Unicode二进制《=====解码====== utf-8二进制
结论:1.编码与解码
字符---编码---》数字
字符《---解码---数字
Unicode二进制======编码======》utf-8二进制
Unicode二进制《=====解码====== utf-8二进制
2.内存中固定使用Unicode,我们可以改变的是数据由内存刷到硬盘时采用的编码(采用UTF-8)
3.1.可以识别万国字符
2.与各种字符编码的二进制数字都有对应关系
4.解决乱码的核心:
字符最初以什么编码存在的,就应该以什么编码去读
保证运行python程序的前两个阶段不乱码的解决方案:
1.添加文件头 在文件首行添加#coding:文件当初存的字符编码
2.
5.python解释器默认utf-8
python3 utf-8
python2 ASCII
python3 的字符串类型在内存里面存成Unicode
python2 的字符串类型在内存里面存成文件头设置格式,否则以默认格式存储
#coding:gbk 字头
优先使用python3编写代码
python2写代码时候 字符串需要在前面加u防止乱码