字符编码
三大核心硬件
- cpu
- 内存
- 硬盘
python解释器执行文件的流程:
- 将python解释器的代码由硬盘读到内存
- 将py文件以普通文本文件的格式由硬盘读到内存
- Python解释器去内存中读取py文件的数据
- 识别python语法,执行相应操作
ASCII码表 美国
用八位二进制来表示一个字符 (所有英文字符+符号一共大概128左右)
最多表示255位
八位二进制 = 8bit
1024 bytes = 1KB
1024KB= 1MB
1024MB= 1GB
1024GB = 1TB
1024TB = 1PB
GBK(中国)
用2个bytes 来代表一个字符,兼容英文字符
万能码:
unicode
为了兼容所有的国家的字符,生成Unicode
所有字符都用2bytes
缺点:1、占用内存空间
2、io次数增加,程序运行速度变慢(最致命)
utf-8:
utf-8只与unicode 有对应关系
所有的英文字符用1个bytes表示
所有的中文字符用3个bytes表示
重点:
-
用户无论输入什么字符,存入内存,都可以兼容
-
硬盘中无论是什么编码,读到内存,都可以兼容unicode
数据传输时,优先以自己的本国字符编码进行传递
必须掌握:
(内存)unicode 二进制字符>>> 编码(encode) >>> (硬盘)utf -8 二进制字符
(硬盘)utf-8 二进制字符 >>> 解码(decode) >>> (内存) unicode 二进制字符
保证不乱码核心
## 用什么编码存的数据,就用什么编码取
python 2:
默认字符编码是ascii码
python3:
默认字符编码utf - 8
pycharm 默认字符编码是:utf-8
windows操作系统默认字符编码:gbk (中国地区)