什么事字符编码?
字符——编码(字符编码表)——》二进制
ASCII:只能表示英文字符,用一个1个Bytes 对应一个英文字符
硬盘:ASCII
保证不乱码精髓,用什么编码,用什么解
GBK:可以表示中文和英文字符,用一个Bytes对应一个英文字符,用两个Bytes对应一个中文字符
内存:GBK
硬盘:GBK
Shift -jis
Euc -kr
每个国家的计算机编码不统一
unicode:也已对应万国字符,统一用2Bytes对应一个字符
内存:unicode
两大特点:
1.可以兼容万国字符
2,与万国字符编码都有一种数字与数字的对应关系
GBK数字——————解码decodde——————》unicode数字
GBK数字《——————编码encode——————unicode数字
utf-8:
3个Bytes 对应一个中文
1个Bytes 对应一个英文字符
**保证不乱码的关键,当初生么编码,就以什么解码**
计算机只使用UNICODE与字符的对应关系
python test.py
在python2 中
1,(第二个阶段)解释器默认将test.py 当做普通文本读入内存时使用的是ASCII
2,有两种中字符串类型
str: str = ’上‘#文件制定格式的二进制
Unicode:x = u'上'#存成unicode1格式的二进制
在python3 中
1,(第二个阶段)解释器默认将test.py 当做普通文本读入内存时使用的是UTF -8
2,(第三个阶段,开始识别语法),字符类型的值开哦你一个内存空间,存入unicode,python3中str是unicode编码的二进制,在任何一个解释器都不会乱码
3.字符类型:str : s = "上"#存成unicode格式的二进制
4,字节串,等同于二进制
如何让解释器知道文本编码时候的方式
#coding:utf-8
文件头——告诉解释器不要用默认编码,用头文件指定编码解释
运行python解释器分为三个阶段:
1,python解释器代码从硬盘刷到内存
2,py文件从硬盘刷到内存
3,解释器去内存读取python文件,识别语法执行操作