• 字符的编码


    字符的编码

    111

    前置知识点:
        1、程序执行的三大核心硬件(***):
            cpu
            内存
            硬盘
        正常执行一个程序的要点:
            1、将硬盘中的数据读到内存
            2、由cpu读内存中的数据进行执行
            3、在执行程序的时候,生成的数据,优先存入内存
            
            2、python解释器执行一个py文件过程(***)
            如果没有python解释器,py文件单纯就是一个文本文件
            所以说,想执行py文件,必须先执行python解释器
    
            1、将python解释器的代码有硬盘读到内存
            2、将py文件以普通文本文件的格式由硬盘读到内存
            3、python解释器去内存中读取py文件的数据
            4、识别python语法,执行相应的操作
    
            ps:任何一个文本编辑器的执行,前两部都一样
    
    字符编码:
        字符:世界上一切语言、文字
        有必要考虑,图片文件、音频文件、视频文件?
    
    
        文件的输入和输出是两个过程
    
        人类输入的内容都是人类自己可以识别的字符
    
        计算机只能识别0101010二进制字符
    
        将人类的字符,存入内存和硬盘,要经历一个过程:
    
        人类的字符  >>>>>>>     (字符编码表)    >>>> 计算机二进制
    
        0 a
        1 b
        01 a
        10 b
        00 c
        11 d
            注意:每个0101的数字代表一个bit
        ASCII码表(美国)
            用八位二进制来代表一个英文字符(所有的英文字符+符号一共大概128左右)
                0000 0000
                1111 1111
                最多只能表示255位
    
    
            八位二进制 = 8 bit
            8 bit = 1 bytes
            1024bytes = 1KB
            1024KB = 1MB
            1024MB = 1GB
            1024GB = 1TB
            1024TB = 1PB
    
        GBK(中国)
            用2个bytes来代表一个字符,兼容英文字符
            0000 0000 0000 0000
            1111 1111 1111 1111
            最多可以表示65535位
    
        shift(小日子过得不错的日本人)
    
        fuck(韩国的)
    
        万国码(unicode)
    
        为了兼容所有的国家的字符,生成unicode
            所有的字符都用2bytes
            0101 0101 a
            0000 0000 0101 0101 a
            
            unicode的缺点:
            1、占用存储空间
            2、io次数增加,程序运行速度变慢(最致命)
    
        在unicode二进制数据存入硬盘的时候,做优化
    
        utf-8:
            utf-8只与unicode有对应关系
            unicode transformation format
    
            所有的英文字符用1个bytes表示
            所有的中文字符用3个bytes表示
    
        现在的计算机:
            内存都是:unicode
            硬盘都是:utf-8
    
    
        需要掌握:
            1、用户无论输入什么字符,存入内存,unicode都可以兼容
            2、硬盘中无论是什么编码的文件,读到内存,都可以兼容unicode
            
        乱码的主要原因:
        乱码和解码不一致
    
        数据的传输:
            优先以自己的本国字符编码进行传递
    
    
        必须掌握(******)
            (内存)unicode二进制字符 >>>  编码(encode)  >>> (硬盘)utf-8二进制字符
            (硬盘)utf-8二进制字符  >>>   解码(decode)  >>> (内存)unicode二进制字符
    
        (******)
        保证不乱码核心:
            用什么编码存的数据,就用什么编码取
    
    ----------------------------------------
        python2 :
            默认的字符编码ascii码(因为当时的unicode还没盛行)
        python3:
            默认的字符编码utf-8
    
        文件头:
            # coding:utf-8
            用英文字符,是为了让所有的计算机都可以识别
    
    
        pycharm默认的字符编码是:
            utf-8
        windows操作系统默认字符编码:
            gbk
            
     最重要的2点的就是 :
    保证不乱码的核心是:用什么编码存的数据,就用什么编码取!
    (内存)Unicode二进制字符>>>>编码(encode)>>>>(硬盘)utf-8 二进制;
    (硬盘)uft-8二进制>>>>解码(decode)>>>>>内存(Unicode )二进制字符
    
         现在的计算机:
            内存都是:unicode
            硬盘都是:utf-8
    
    
  • 相关阅读:
    数据库中的float在实体中对应的竟是double
    VS2010让开发者受益新功能深入解读
    .net 缩略图 高品质
    不错.net图片水印类
    [转] asp.net url重写
    进制转换方法汇总
    c#中如何TextBox中輸入的換行符存入access數據庫
    .net高品质缩略图和低品质缩略图
    SQL Server中获得EXEC后面的sql语句或者存储过程的返
    C#动态创建图像的方法
  • 原文地址:https://www.cnblogs.com/bs2019/p/11820295.html
Copyright © 2020-2023  润新知