美文网首页
五 字符编码

五 字符编码

作者: 吃可爱长大鸭 | 来源:发表于2021-01-26 21:41 被阅读0次
    1. 计算机系统分为三层:
    
        应用软件
        操作系统
        硬件
    
    2.
        文本编辑器读一个文件的三个过程:
            1. 先启动文本编辑器
            2. 文件编辑器会将文件内容读入内存
            3. 将读入内存的内容显示到屏幕上
    
        Cpython解释器执行一个py文件的三个过程:
            1. 先启动python解释器
            2. python解释器会将py文件的内容当中普通的文本内容读入内存
            3. 开始解释执行刚刚读入内存的代码,识别python语法
    
    
    3. 字符编码
        字符编码指的是字符转换成/编码成数字
        编码的过程一定要遵循一个标准,该标准称之为字符编码表
    
        字符--------编码--------》数字
        字符《--------解码--------数字
    
    
    1. ASCII表:只能识别英文字符,用8bit对应一个英文字符
      1个英文字符====>1Bytes
    
    
    2. GBK表:可以识别中文字符、英文字符,用8bit对应一个英文字符,用16个bit对应一个中文字符
      1个英文字符====>1Bytes
      1个中文字符====>2Bytes
    
    
    3. unicode(内存中默认使用该编码):用2Bytes表示一个字符
       1. 可以识别万国字符
       2. 与各种字符编码的二进制数字都有对应关系
    
    
    4. utf-8全称Unicode Transformation Format:
      1个英文字符====>1Bytes
      1个中文字符====>3Bytes
    
    
    
    结论:
    1、 编码与解码
       字符--------编码--------》数字
       字符《--------解码--------数字
    
       unicode二进制========编码========》utf-8二进制
       unicode二进制《=======解码=========utf-8二进制
    
    
    2. 内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码(应该采用utf-8)
      unicode的特点:
       1. 可以识别万国字符
       2. 与各种字符编码的二进制数字都有对应关系
    
    
    3. 解决乱码问题的核心:
     1. 字符当初以什么编码存的,就应该以什么编码去读
     2. 保证运行python程序的前两个阶段不乱码的解决方案:添加文件头
         在文件首行添加#coding:文件当初存的字符编码
    
    4. python解释器默认的编码
      python3:默认utf-8
      python2:默认ASCII
    
    5.
    python3的字符串类型在内存中存成unicode格式的二进制
    
    6.
    x='上'
    #unicode的二进制------编码encode------->gbk格式的二进制
    res=x.encode('gbk')
    # res=x.encode('utf-8')
    print(res,type(res))
    
    #unicode的二进制<------解码decode-------gbk格式的二进制
    m=res.decode('gbk')
    print(m)
    

    相关文章

      网友评论

          本文标题:五 字符编码

          本文链接:https://www.haomeiwen.com/subject/rnpnzktx.html