python之路--day6--字符编码

时间:2023-01-10 22:32:13
一.知识储备
cpu--控制和运算
内存--暂时存储cpu需要的数据
硬盘--永久保存数据
2.文本编辑器的原理存储原理
1,启动文本编辑器
2,在编辑器上输入内容---此时输入内容还在内存上
3,保存到硬盘
结论:在编写py程序的时候,没有语法的限制,编辑的结果和编写
一个普通的文本文件没有任何区别,只有把py程序交给python解释器解释
并执行的第三个阶段才有意义
3.python解释器执行python程序的原理
python3 test.py
第一阶段:先启动python解释器这个软件
第二阶段:把test.py文件的内容读入内存
第三阶段:解释执行,识别语法
4.文本编辑器读取原理
1.编辑器向操作系统发送请求
2.操作系统将数据从硬盘中取出,并在内存中加载
3.应用程序通过操作系统将内容打印出来

二.什么是字符编码
字符编码就是把人类的语言翻译为计算机能够理解的二进制的过程
翻译的过程遵循的原则--字符编码表(字符与二进制数一一对应的关系)

字符编码的发展:
ASCII 码:只能表示英文字符,一个英文字符占用1字节
GBK:中文定制的编码表,2个字节表示中文,1个字节表示英文
unicode:(内存中固定的编码)--2个字节表示一个字符
uft-8:unicode的升级版本,解决了unicode浪费内存空间的问题
1字节表示一个英文字符,3字节表示一个中文字符

三.保证不乱码的核心:
文件以什么编码存在,就必须以什么编码读取
强调:我们可以控制的只是存在硬盘上的编码

python3解释器:默认utf——8编码
python2解释器:默认ascii编码

文件头的作用:
#coding:utf-8 告诉解释器,使用我指定的字符编码

四.执行python程序第三个阶段发生的事
会识别python语法,定义的字符串类型涉及到字符编码的概念

例子:
x='上' #x=str('上')
python2:
字符串分为两种形式
x='上' #python2的str类型会按照文件头指定的编码来存'上'

python3:
str:默认被存为unicode

五,转换 unicode和其他编码之间的转换

  unicode---编码encode---》utf-8
  utf-8---解码decode---》unicode
  

  python3中str是以unicode编码形式存放的

  x='你好'
  x.encode('utf-8') ----> bytes类型
  bytes.decode('utf-8')------------->str(unicode)字符串类型
  
  3、bytes类型的用途:
  1、存放到文件中
  2、基于网络传输