zoukankan      html  css  js  c++  java
  • 字符编码

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

    #1、打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失
    
    #2、要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到了硬盘上。
    
    #3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。

      python解释器执行py文件的原理,例如python test.py

    #第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器
    
    #第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:pyhon的解释性,决定了解释器只关心文件内容,不关心文件后缀名)
    
    #第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码( ps:在该阶段,即真正执行代码时,才会识别python的语法,执行文件内代码,当执行到name="egon"时,会开辟内存空间存放字符串"egon")

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

    #1、相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样
    
    #2、不同点:文本编辑器将文件内容读入内存后,是为了显示或者编辑,根本不去理会python的语法,而python解释器将文件内容读入内存后,可不是为了给你瞅一眼python代码写的啥,而是为了执行python代码、会识别python语法。

    二、涉及到字符编码的问题两个场景:

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

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

    三、字符编码:人识别的语言与机器识别的语言转化的媒介

      过程:字符----(翻译过程)------》数字  对应关系形成的数据结构称之为:编码表

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

      字符与字节:字符占用多少字节,字节是bytes类型可以当做二进制来看

      内存中同意采用unicode,浪费空间来换取可以转换任意编码(不乱码),硬盘可以采用各种格式,如utf-8,保证存放在硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

      unicode与utf-8什么关系

      unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占用空间较多,读取效率极高

      utf-8:用3-6个字节来存储汉字,用一个字节来存储英文字母,占用空间较少,读取效率低

      unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据

      变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快

  • 相关阅读:
    Androidproject文件下assets目录与res目录的差别
    tomcat 实现域名crm.test.com訪问
    全文索引--自己定义chinese_lexer词典
    Elasticsearch 之 慘痛部署(分片移位)
    iOS开发核心语言Objective C —— 全部知识点总结
    [LeedCode OJ]#28 Implement strStr()
    【Django】 gunicorn部署纪要
    PKI(公钥基础设施)基础知识笔记
    Cocoapods Undefined symbols for architecture armv7sarm64
    Android开发Tips(3)
  • 原文地址:https://www.cnblogs.com/lakei/p/10600544.html
Copyright © 2011-2022 走看看