zoukankan      html  css  js  c++  java
  • 20181123(编码问题)

    今日内容:

    1、字符编码

    2、文件操作

    文件操作的读写方法

    文件的打开模式

    引子

    1、计算机系统分为三层:

    应用软件

    操作系统

    硬件

    2、文本编辑器读一个文件的三个过程:

    Ⅰ先启动文本编辑器

    Ⅱ文件编辑器会将文件内容读入内存

    Ⅲ将读入内存的内容显示到屏幕上

    cpython解释器执行一个py文件的三个过程:

    Ⅰ先启动python解释器

    Ⅱpython解释器会将py文件的内容当成普通的文本内容读入内存

    Ⅲ开始解释执行刚刚载入内存的代码,识别python语法

     

    一、字符编码

    字符编码指的是把字符编码成数字

    编码的过程一定要遵循一个标准,该标准称之为字符编码表。

    字符===编码(encode)===》数字

    字符《==解码(decode)===数字

    1、ASCII表:只有英文字符与数字的对应关系,用8bit对应一个英文字符。

    一个英文字符===》1Bytes

    2、GBK表:可以识别中文字符和英文字符,用8bit对应一个英文字符,用16bit对应一个中文字符

    一个英文字符===》1Bytes

    一个中文字符===》2Bytes

    3、unicode(内存中默认使用该编码),大多数用2Bytes表示一个字符

    Ⅰ可以识别万国字符

    Ⅱ与各种字符编码的二进制数字都有对应关系

    4、utf-8全称为Unicode Transformmation Format:

    一个英文字符===》1Bytes

    一个中文字符===》3Bytes

    unicode二进制====编码====》utf-8二进制

    unicode二进制《===解码====utf-8二进制

     

    结论:

    Ⅰ编码与解码

    字符===编码===》数字

    字符《==解码===数字

    unicode二进制====编码(encode)====》utf-8二进制

    unicode二进制《===解码(decode)====utf-8二进制

     

    Ⅱ内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码(应该使用utf-8)

    unicode的特点:

    Ⅰ可以识别万国字符

    Ⅱ与各种字符编码的二进制数字都有对应关系

     

    Ⅲ 解决乱码问题的核心:

    ①字符当初以什么编码的,就应该以什么编码去读

    ②保证运行python程序的前两个阶段不乱码的解决方案:添加文件头

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

     

    Ⅳ pyhton解释器默认的编码

    python3:默认utf-8

    python2:默认ASCII

     

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

     

     

     

     

  • 相关阅读:
    C语言中的复合类型
    C语言中的函数与指针
    C语言中的循环结构与选择结构
    C语言中的运算符
    C语言中的变量
    毕业论文查重网站
    Protocol and Delegate协议和代理
    NSArray与NSMutableArray 数组与可变数组
    UI复习
    NSString方法与NSMutableString方法
  • 原文地址:https://www.cnblogs.com/realadmin/p/10009393.html
Copyright © 2011-2022 走看看