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

    一. 计算机系统分为三层:

                 应用软件
                 操作系统
                 硬件

    二.文本编辑器与Cpython解释器执行文件的过程            

                  文本编辑器读一个文件的三个过程:
                         1. 先启动文本编辑器
                         2. 文件编辑器会将文件内容读入内存
                         3. 将读入内存的内容显示到屏幕上

                  Cpython解释器执行一个py文件的三个过程:
                         1. 先启动python解释器
                         2. python解释器会将py文件的内容当中普通的文本内容读入内存
                         3. 开始解释执行刚刚读入内存的代码,识别python语法

    三.字符编码

     字符编码:字符转换成/编码成数字,编码的过程一定要遵循一个标准,该标准称之为字符编码表


            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. 解决乱码问题的核心:
                                3.1 字符当初以什么编码存的,就应该以什么编码去读
                                3.2 保证运行python程序的前两个阶段不乱码的解决方案:

                                          1 添加文件头
                                          2 在文件首行添加#coding:文件当初存的字符编码

                   4. python解释器默认的编码
                                      python3:默认utf-8
                                      python2:默认ASCII


                   5. python3的字符串类型在内存中存成unicode格式的二进制



  • 相关阅读:
    hdu 1042 N!
    hdu 1002 A + B Problem II
    c++大数模板
    hdu 1004 Let the Balloon Rise
    hdu 4027 Can you answer these queries?
    poj 2823 Sliding Window
    hdu 3074 Multiply game
    hdu 1394 Minimum Inversion Number
    hdu 5199 Gunner
    九度oj 1521 二叉树的镜像
  • 原文地址:https://www.cnblogs.com/wangke0917/p/10009338.html
Copyright © 2011-2022 走看看