码迷,mamicode.com
首页 > 其他好文 > 详细

字符编码和文件处理

时间:2019-01-07 21:20:57      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:知识   乱码   encode   文件后缀名   pyc   动态   数字   没有   类型   

一、字符编码

计算机基础知识:应用程序任何操作硬件的请求都需要想操作系统发起系统调用,然后由操作系统去操作硬件

人与人沟通需要使用的语言是人类能听懂的中文、英文等等。但是人与计算机沟通,就必须要使用计算机能听懂的语言,计算机只认识数字,所以为了人类能读懂计算机语言,并且计算机能读懂人类的语言,所以必须经过一个过程:  字符——》翻译过程——》数字

这个过程就是一个字符如何对应一个特定数字的标准,这个标准就是字符编码

二、文本编辑器存取文件的原理(pycharm、word、nodepad++)

1、打开编辑器就是在内存中启动了一个进程,因此,用编辑器写的内容就是存放在内存中的,只要断电数据就消失

2、当点击保存按钮时,编辑器就把内存的数据刷到了硬盘上,这就是永久保存数据的过程

3、在我们编写py文件时,不去执行这个py文件,就跟编写其他文件没有任何区别,都是在编写一堆字符而已

三、python解释器执行py文件的原理

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

第二阶段:python解释器相当于文本编辑器,python解释器会从硬盘上将test.py的当做普通文件读入内存(pyth的解释型决定了解释器只关心文件内容,不关心文件后缀名)

第三阶段:python解释器解释执行刚刚加载到内存中的test.py的代码,开始识别pyth语法

四、总结python解释器与文本编辑器的异同

1、相同点:python解释器是解释执行文件内容的,因此python解释器具备了读py文件的功能,这一点与文本编辑器一样

2、不同点:文本编辑器试讲文本读入内存后,方便显示或者编辑,不需要理会python的语法,但是python解释器将文件内容读入内存之后,还需要执行python代码,识别python语法

五、涉及到字符编码的问题

1、一个python文件中的内容是由一堆字符组成的,存取都涉及到字符编码问题(python文件并未执行,前两个阶段属于这一范畴)

2、python中的数据类型字符串是由一堆字符组成的(第三阶段)

六、字符编码的发展史和分类(了解)

ASCII码最多只能表示256个字符

七、字符吗的发展阶段可分为三个阶段

1、现代计算机起源于美国。最早诞生也是基于英文考虑的ASCII

2、为了满足中文和英文,中国人定制了GBK

3、多语言混合的文本中,显示会有乱码,为了结局这个问题,需要同时满足:

     a、能够兼容万国字符

     b、与全世界所有的字符编码都有映射关系,这样就能转换成任意国家的字符编码

    总结:内存中统一采用Unicode,浪费空间来换取可以转换成任意编码,硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

八、乱码分析

  1、存文件时就已经发生乱码

  2、存文件时没有乱码,读文件时发生了乱码

总结:1、保证不乱码的核心法则就是,字符按照什么标准而编码的,就按什么标准解码,此处的标准就是字符编码

           2、在内存中写的所有字符,都是Unicode编码。

                    Unicode格式(内存)——》encode(保存文件)——》utf-8格式(硬盘)

                    utf-8格式(硬盘)——》decode(读文件)——》Unicode格式(内存)

补充:浏览网页时,服务器会把动态生成的Unicode内容转换成utf-8再传输到浏览器

           如果服务端encode的编码格式是utf-8,客户端内存中收到的也是utf-8编码的结果

九、字符编码应用之python

强调:

   阶段一:启动python解释器

  阶段二:python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中

  阶段三:读取已经加载到内存的代码(Unicode编码格式),然后执行,执行过程中可能会开辟新的内存空间

 

字符编码和文件处理

标签:知识   乱码   encode   文件后缀名   pyc   动态   数字   没有   类型   

原文地址:https://www.cnblogs.com/zhangzhechun/p/10234899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!