字符编码
字符编码的渊源
1. 起初计算机只支持ASCII码的字符转换
2. 后来计算机兴起,为满足不同国家的需求,出现了GBK、shift-jis等字符编码表
3. 为了统一,后来出现了unicode编码格式,目前内存中使用的编码表就是unicode
4. 为了统一方便各国人的使用,出现了unicode的精简版万国字符编码表:utf-8
构成计算机的三大硬件:cpu、内存、硬盘
计算机读取文件的过程:
- 计算机把文件从硬盘加载到内存,
- 应用程序从内存中读取相应的数据
计算机存储文件的过程:
- 应用程序将内容写到内存
- 计算机将内存中的数据写入到硬盘
字符的编解码过程
pycharm和mac终端默认的使用的字符编码是utf-8
window终端默认使用的字符编码是GBK
-
编码过程(encode):
1. 输入字符到pycharm编辑器,这个时候字符会编码成unicode(这个阶段不可人为控制)
2. 字符串要落盘,会根据预先配置的字符编码表将unicode格式编码成相应的二进制落盘(可人为指定编码格式)
一般编码是为了存入硬盘或者通过网络传输 ,会将字符串类型的数据转换为相应编码的bytes类型 -
解码过程(decode):
1. 通过指定的编码格式将磁盘上的相应格式的二进制读到内存解吗成unicode格式
2. unicode格式的字符解码为相应的字符串(解码格式不可人为控制)
注意:
- 用什么编码格式存就用什么编码格式取
- 判断乱码是存数据发生的乱码还是取数据发生了乱码,不同情况处理方式不同
- python2诞生的时候还没出现unicode编码,所以python2中的字符如果要编码成为unicode格式,需要加上u。如:a=u"feilaifeng"
- python3默认就将字符编码成unicode存入内存中
- 声明读代码使用的编码格式,可以在代码第一行写上:# coding:utf-8