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

    字符编码

    写文本的流程

    1. 在记事本中按下键盘按键j
    2. 记事本和操作系统交互,把按下的按键j的指令转化成0和1
    3. 操作系统发送指令给CPU
    4. CPU把0和1的指令转化为j
    5. 显示器显示j

    这期间发生的字符与0和1之间的转化过程称为:字符编码

    存 : j -> 0和1

    取 : 0和1 -> j

    存和取统称为字符编码

    python解释器的原理

    1. 启动python解释器,python解释器相当于一个文本编辑器
    2. 打开文件,读取文件内容,python解释器相当于一个文本编辑器,此时发生了字符编码
    3. pytho解释器解释文件内容的语法,此时发生了字符编码

    python解释器和文本编辑器的区别

    1. 相同点:都从硬盘中读取数据到内存中并显示
    2. 不同点:python解释器会多执行解释的步骤

    字符编码发生的三个阶段

    1. 存:内存到硬盘
    2. 取:硬盘到内存
    3. 解释器解释语法

    ASCII表

    8位二进制数作为一个表与英文字符一一对应

    中文表为GB2312或称为GBK

    内存中编码格式统一位unicode(unicode是各国通用的编码)

    从内存到硬盘的过程:unicode-->gbk称为编码encode

    从硬盘到内存的过程:gbk-->unicode称为解码decode

    存码时用什么编码,取的时候就用什么编码,不然会出现乱码

    python2与python3解释器编码的区别

    python2:

    在python2解释语法的时候,生成变量时会把这个字符读进内存,这个时候有两种情况,一种是str编码,一种是unicode编码

    str

    直接编码成gbk的行式

    unicode

    直接编码成unicode的形式

    python3

    举例:x = '上'

    unicode 10101010110101011010101101010

    x = 10101010110101011010101101010

    print(10101010110101011010101101010)

    当打印的时候,解释器会自动把'上'的unicode编码10101010110101011010101101010转成终端编码

    pycharm右下角控制的是写入的代码字符以什么编码格式保存,在代码开头输入#coding:utf-8控制的是python3作为文本编辑器的时候以什么编码格式读取文本内容,python3默认以utf-8行式读取字符

    python解释器解释语法

    unicode形式:解释定义变量的语法时,会开辟一块内存空间放入这个变量,然后这个变量在python3中以unicode的形式储存

    utf-8形式:解释定义变量的语法时,会开辟一块内存空间放入这个变量,然后这个变量在python3中以utf-8的形式储存,但如果终端的编码为GBK就无法识别utf-8的编码

    总结:新开辟的空间放入变量的时候,使用unicode转换,这样终端无论是什么形式的编码格式,都能够识别并打印

  • 相关阅读:
    《MIT 6.828 Lab 1 Exercise 8》实验报告
    《MIT 6.828 Lab 1 Exercise 7》实验报告
    《MIT 6.828 Lab 1 Exercise 4》实验报告
    《MIT 6.828 Lab 1 Exercise 3》实验报告
    《MIT 6.828 Lab 1 Exercise 2》实验报告
    《Brennan's Guide to Inline Assembly》学习笔记
    《PC Assembly Language》读书笔记
    《MIT 6.828 Lab1: Booting a PC》实验报告
    MIT 6.828 课程介绍
    《Data Structures and Algorithm Analysis in C》学习与刷题笔记
  • 原文地址:https://www.cnblogs.com/acate/p/10932601.html
Copyright © 2011-2022 走看看