【0807 | Day 10】字符编码以及Python2/3编码的区别
计算机组成:CPU、内存、硬盘
CPU:控制程序运行(从内存中取出文本编辑器的数据存入内存)
内存:运行程序
硬件:存储数据
二、文本编辑器存取文件的原理
比如计算机只能识别0和1,文本编辑器读写数据再存储数据
三、Python解释器
01010001 --> a = 1 (所见,python解释器没有运行时提供)
a = 1 -> 01010001(所得,python解释器运行时提供)
四、字符编码
二进制转化为你认识的字符
01 ab 2^1
00 01 10 11 abcd2^2
……
日本:shift_JIS
韩国:Euc_kr
五、字符编码梳理
六、Python2 Vs Python3字符编码的区别
代码详情 | Python2执行情况 | Python3执行情况 |
---|---|---|
# coding:gbk print('中') 终端:utf8 |
乱码 | 不乱码 |
# coding:utf8 print('中') 终端:utf8 |
不乱码 | 不乱码 |
# coding:gbk print(u'中') 终端:utf8 |
不乱码 | 不乱码 |
# coding:utf8 print(u'中') 终端:utf8 |
不乱码 | 不乱码 |
- 注意:在Python2中如果指定了字符编码,那么内存存取就会按照指定的字符编码去入内存。解释或去执行时就要按照指定了的字符编码去解释,否则就会乱码。 否则可以在定义变量前面加上u,这样变量就会以unicode编码存入内存。
- 注意:但在Python3中就不会有这样的问题,因为无论你指定了什么字符编码,在内存存取时都会使用Unicode编码去入内存,Unicode编码可以和任意的字符编码相互转换