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

    字符编码

    前置知识点:

    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
    
    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
        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
  • 相关阅读:
    Android Media Playback 中的MediaPlayer的用法及注意事项(二)
    Android Media Playback 中的MediaPlayer的用法及注意事项(一)
    34. Search for a Range
    33. Search in Rotated Sorted Array
    32. Longest Valid Parentheses
    31. Next Permutation下一个排列
    30. Substring with Concatenation of All Words找出串联所有词的子串
    29. Divide Two Integers
    28. Implement strStr()子串匹配
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/snailhuang/p/11815381.html
Copyright © 2011-2022 走看看