【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

……

0000 0000 2^8

日本: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编码可以和任意的字符编码相互转换,并在读取时按照所需的编码区读取,这样就很好解决了字符编码的问题

猜你喜欢

转载自www.cnblogs.com/fxyadela/p/11318928.html
今日推荐