python可以处理任何字符编码文本_python字符编码和文件处理

一.了解字符编码的知识储备

1.文本编辑器存取文件的原理(nodepad++,python,word)

打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放于内存中的,断电后数据丢失

要想永远保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上

在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已.

2.python解释器执行py文件的原理,(python,test.py)

第一阶段: python解释器启动,此时就相当于启动了一个文本编辑器

第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中

第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码

3.过程:

文本编辑器°一个文件的三个过程:

先启动文本编辑器

文件编辑器会将文件内容读入内存

将读入内存的内容显示到屏幕上

CPython解释器执行一个py文件的三个过程:

先启动python解释器

python解释器会将py文件的内容当中普通的文本内容读入内存

开始解释执行刚刚读入内存的代码,识别python语法

4.字符编码

字符编码指的是字符转换成或者编码成数字

编码的过程一定要遵循一个标准,该标准称之为字符编码表

ASCII表:只能识别英文字符,用8bit对应一个英文字符  (一个英文字符===>1Bytes)

GBK表:可以识别中文字符/英文字符,用8bit对应一个英文字符,用16bit对应一个中文字符(1个英文字符==>1Bytes/  1个中文字符==>2Bytes)

unicode(内存中默认使用该编码) :用2Bytes表示一个字符(特点: 1.可以识别万国字符    2.与各种字符编码的二进制数字都有对应关系)

utf-8全称Unicode Transformaation Format: (1个英文字符==>1Bytes        1个中文字符==>3Bytes)

结论:

1.编码与解码

字符---------编码--------->>数字

字符<

unicode二进制---------编码-------->>utf-8二进制

unicode二进制<

2.内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码    (应该采用utf-8)

unicode的特点:

1.可以识别万国字符

2.与各种字符编码的二进制数字都有对应关系

3.解决乱码问题的核心

1.字符当初以什么编码存的,就应该以什么编码去读

2.保证运行python程序的前两个阶段不乱码的解决方案:添加文件头  (在文件首行添加  "#coding: 文件当初存的字符编码)

4.python解释器默认的编码

python3:      utf-8

python2:      ASCII

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值