字符编码和python2与python3的区别

文本编辑器存储信息的过程

文本编辑器-->>写文本-->>存储信息-->>显示屏(内存)-->>硬盘(转换)-->>各个国家的编码
由于各个国家都要用计算机,所以各个国家都设定了一套自己的编码.
由于各个国家的编码是不互通的,这时候就出现了一个unicode编码,他可以识别大多数国家的编码,所以也叫万国编码.
又因为Unicode编码的占内存问题,所以又出现了UTF-8,UTF-8只和Unicode一一对应,也解决了Unicode占内存的问题.
现在所有电脑都是:内存中用Unicode取,用UTF-8存入硬盘,全世界的人写代码都是用UTF-8.

内存为什么不用UTF-8?

因为UTF-8和各个国家的编码不互相识别,因此内存用Unicode.

用什么编码写,就用什么编码读

如果用UTF-8写,读的时候用GBK,那就会造成乱码.

编码和解码

Unicode编码-->>(编码)UTF-8从内存到硬盘
UTF-8-->>(解码)Unicode从硬盘到内存
现在内存只有Unicode编码

python解释器(文本编辑器)解释python代码的流程

1.python解释器相当于文本编辑器,把代码读入python解释器-->>字符编码-->>python2默认是ascill,python3默认是UTF-8-->>上coding头
2.识别代码-->>print()有意义-->>语法问题
3.产生结果-->>跑到终端-->>字符编码

终端有一个特性:你的电脑是什么编码,就按照什么编码来,Windows终端是GBK
代码出了编码错误,首先加: #coding:UTF-8

python2和python3的编码区别

python2

python有两种存储变量的形式:
1.Unicode;
不会乱码
2.按照coding头来定.
如果终端接收的编码和终端自带的编码不同的话,会乱码.

python3

python3只有一种存储变量的形式,Unicode.
优点:不会乱码

猜你喜欢

转载自www.cnblogs.com/793564949liu/p/11534254.html