day08字符编码问题

day 08整理

字符编码

python 解释器启动应用程序的三个流程

1.把字符读入python解释器(python解释器相当于文本编辑器)--->字符编码

2.识别字符

3.往终端打印结果----->字符编码

第一步解决方法:python2默认使用ascill码读入字符;python3默认使用utf8

可以使用coding:gbk 修改为 gbk读入字符

第二步解决方法:python2中存储变量用Unicode/coding指定的编码存储变量

python3默认使用unicode存储变量

假设python2用coding指定的gbk存储变量,终端支持的编码是utf8 乱码

假设python2用unicode(u'中文')存储变量,终端支持的编码是utf8

假设python3 用unicode存储变量,终端支持的编码是Utf8/gbk

以下总结为:

编码是把文本(字符串)转换成字节流,Unicode格式转换成其他编码格式

解码是把字节流转换成字符串(文本),其他编码格式转成Unicode

*字节:计算机数据的表示。8位二进制。可以表示无符号整数:0-255。下文,用“字节流”表示“字节”组成的串。

*字符:英文字符“abc”,或者中文字符“你我他”。字符本身不知道如何在计算机中保存。下文中,会避免使用“字符串”这个词,而用“文本”来表 

示“字符”组成的串。

*编码(动词):按照某种规则(这个规则称为:编码(名词))将“文本”转换为“字节流”。(在python中:unicode变成str) 

*解码(动词):将“字节流”按照某种规则转换成“文本”。(在python中:str变成unicode) 

**实际上,任何东西在计算机中表示,都需要编码。例如,视频要编码然后保存在文件中,播放的时候需要解码才能观看。 

unicode:unicode定义了,一个“字符”和一个“数字”的对应,但是并没有规定这个“数字”在计算机中怎么保存
原文地址:https://www.cnblogs.com/kaizi111/p/11567483.html