字符编码

前置知识点:

      程序执行三大核心硬件:cpu,内存,硬盘

      执行一个程序:1.将硬盘数据读到内存

             2.cpu读取内存的数据执行

             3.执行程序时生成的数据有限存入内存

      python解释器执行py文件过程:

            1.将py解释器的代码由硬盘读取到内存

            2.将py文件以普通文本文件的格式由硬盘读到内存

            3.python解释器取内存读取py文件的数据

            4.识别python语法,执行相应程序

      ps:任何文本执行器前两步都一样

字符编码:

      将人类字符存入内存和硬盘需要经历的过程:  字符====》字符编码表====》计算机二进制

  ASCII表:用八位二进制代表一个英文字符:

                      0000 0000

                      1111  1111    最多只能表示255位

           八位二进制 = 8bit = 1bytes = 1/1024 kb = .........................................

  GKB(中国):用2个bytes来代表一个字符,兼容英文字符

                       0000 0000 0000 0000

                       1111  1111  1111  1111   最多可以表示65535位

  shift(日本):

  euc_kr()韩国;

  unicode(万国码):为了兼容所有国家的字符,所有字符都用2个bytes(缺点:1,,占用储存空间   2.增加io次数,程序运行变慢)

  utf -8:在unicode二进制数据存入硬盘时做优化而生成

      utf-8只与unicode关联

      所有英文字符用一个1bytes表示,中文字符用3个bytes表示

  必须掌握:1、(内存)unicode ======》编码(encode)======》(硬盘)utf-8二进制字符

            (硬盘) utf-8 二进制字符======》解码(decode)=====》(内存)unicode二进制字符

            2、保证不乱码的核心:

                  用什么编码存的数据,就用什么编码取

  需要掌握:1、用户无论输入什么字符,存入内存,unicode都可兼容

       2、硬盘中无论什么编码文件,读到内存,都可兼容unicode

  

原文地址:https://www.cnblogs.com/littleb/p/11814268.html