zoukankan      html  css  js  c++  java
  • Python之字符编码(一)

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

    1、计算机基础知识?

      计算机中所有的软件文件(包括:操作系统)都存储在硬盘,启动计算机,计算机需要把系统文件都去到内存中。

      

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

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

      想要永久保存,需要把内存中的数据刷到硬盘上。

      编写一个py文件(没有执行),跟编写TXT文件一样,没有任何区别。都只是一堆字符而已。

    3、python解释器解释py文件的原理,例如:python test.py

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

      第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py文件的内容读取大内存中(pyhon的解释性只关心文件内容,不关心文件后缀名)

      第三阶段:python解释器解释执行刚刚加载到内存中的test.py的代码(在执行阶段,才会识别python语法,执行文件内代码,执行到name="张三",才会开辟内存空间存放字符窜"张三")

      总结python解释器与文本编辑器的区别:

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

      不同点:文本编辑器将文件内容读取内存后,是为了显示或者编辑文本内容,根本不会去理会执行python语法,而python解释器将文件内容读入内存后,是为了执行,会识别python语法。

    二、什么是字符编码?

      计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平),关于磁盘的磁特性也是同样的道理。结论:计算机只认识数字。

      很明显,我们平时在使用计算机时,用的都是人类能读懂的字符(用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类的字符?

      必须经过一个过程:

      字符--------(翻译过程)------->数字

      这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码。

      以下两个场景下涉及到字符编码的问题:

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

      2. python中的数据类型字符串是由一串字符组成的(python文件执行时,即第三个阶段)

  • 相关阅读:
    Asp.Net MVC 2 RC 2 发布
    SqlServer2008修改表时出现“save changes is not permitted…”解决方法
    使用LoadRunner测试WMS
    使用Expression Encoder 3发布媒体文件到WebDAV
    Net Remoting Error:试图创建未绑定类型的代理
    Net4.0VS2010新特性
    WCF的一些基本知识点
    WCF中的ServiceHost初始化两种方式
    WMS中添加默认发布点
    HTTP 错误 500.19 Internal Server Error 错误解决方法
  • 原文地址:https://www.cnblogs.com/MouseCat/p/7518781.html
Copyright © 2011-2022 走看看