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

    程序执行的三大核心硬件:

    CPU,内存,硬盘

    正常执行一个程序的要点:

     1.将硬盘中的数据读取内存

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

     3.在执行程序时,生成的数据优先存入内存

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

    如果么有python解释器,py文件就是一个文本文件,执行py文件,先执行python解释器

    1)将python解释器的代码由硬盘读入内存

    2)再将py文件以普通文本文件格式由硬盘读入内存

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

    4)识别python语法,执行相应的操作

    ps:任意的文本编译器执行,前面两步一样

    字符:是世界上一切的文字,语言

    将人类的文字,存入内存和硬盘中:

    人类字符 ——》 字符编码表——》计算机二进制

    字符编码表

    ASCII码表 (美)

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

    八位二进制,最多表示255位

    八位二进制 = 8bit

    8 bit = 1 bytes

    1024B =1MB

    1024MB = 1G

    1024GB = 1TB

    1024TB = 1PB

    GBK(中)

    用两个bytes来代表一个字符,兼容英文字符

    shift(日本)

    fuck(韩国)

    unicode: 万国码

       为了兼容所有的国家的字符

      所有的字符都是用2bytes

    缺点:

    1.占用存储空间

    2.io次数增加,程序运行速度变慢

    utf8

    只用Unicode对应:

    所有的英文字符用一个bytes表示:

      中文 用三个bytes

    在unicode二进制数据存入硬盘的时候,做优化:

    现在的计算机:

    内存:unicode

    硬盘:uft-8

    (内存)Unicode二进制——》编码(encode)——》硬盘utf-8二进制字符

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

    保证不乱码的核心:

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

    1.用户不论输入的是什么字符,存入内存,unicode都可以兼容

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

    数据传输:

    优先以自己本国的语言

    python2:

      默认的字符编码ASCII码

    python3:

    默认的utf-8

    文件头:

      # coding = utf—8

      用英文字符,是为了让所有的计算机都可以识别

    pycharm默认的字符编码:

    utf-8

    中国的windows操作系统默认字符编码:

    gbk

    x = '你好美'                         
    res = x.encode('utf-8')           
    print(res)                        
    res1 = res.decode('utf-8')        
    print(res1)                       
    
    
    b'xe4xbdxa0xe5xa5xbdxe7xbex8e'
    你好美

     

  • 相关阅读:
    hw4 打卡
    lab4打卡
    hw3打卡
    lab3打卡
    hw2打卡
    lab2打卡
    hw1打卡
    Java Trie(词典树)实现
    Java HashMap实现
    DFS习题复习(2) DFS的实际应用:括号检测,graph Bipartite及随机生成迷宫
  • 原文地址:https://www.cnblogs.com/godlover/p/11813148.html
Copyright © 2011-2022 走看看