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格式的二进制



  • 相关阅读:
    idea 从svn导入项目遇到的错误
    用sql语句处理字符串以逗号截开分别获取值
    tree grid 实现编辑保存然后整体存入数据库
    EasyUI的TreeGrid的json格式,树状图显示问题
    vue.js--菜鸟级入门
    Django3.0知识笔记——WSGI&ASGI是什么?
    open stack
    shell脚本简介及常用文本编辑命令
    shell脚本之变量与运算符
    shell编程之流程控制(for、while、case、break、continue)
  • 原文地址:https://www.cnblogs.com/wangke0917/p/10009338.html
Copyright © 2011-2022 走看看