字符编码复习

内存中的都是unicode明文(二进制数据)

unicode把明文对应成一个二进制,utf8是把unicode的二进制再转成一个二进制

两种都是一种编码方式
unicode*(明文对应二进制)两个字节,六万多个状态,全世界
utf8:(二进制对应二进制)可变的(中文一般用三个字符,因为编程用中文的太少所以还是省空间)
为什么不将unicode直接存到磁盘,传输,因为utf8比unicode更节省空间

world打开文件的过程:你写上的字先进内存(unicode形式的二进制数据),点保存(二进制的unicode按utf8再转成二进制)
保存到磁盘;打开文件的过程,把磁盘上的utf8转换成decode的unicode编码,然后到内存就能看了
所以你encode存的时候,跟decode打开的时候编码一定要一样
python解释器的#coding:utf8就是告诉我解释器,按utf8进行解码

python解释器的翻译是一行一行的解释


pthon2.x
1,str: bytes数据 str只是个名字 (print type时的显示)
2,unicode: unicode编码后的二进制数据 unicode也只是字名字

只要是Unicode就是encode操作,只要是bytes数据就是decode操作
python3完完全全把字节类型跟字符类型完全分开,混用会报错
python3.x
1,
2,

原文地址:https://www.cnblogs.com/wanchenxi/p/7900279.html