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

     

     

     

     

  • 相关阅读:
    强制类型转换
    《thinking in java》 接口与内部类
    JAVA强制类型转换(转载+自己的感想)
    Java 面试题问与答:编译时与运行时
    Java注解处理器
    Java反射详解
    BZOJ5072:[Lydsy1710月赛]小A的树(树形DP)
    BZOJ4987:Tree(树形DP)
    BZOJ3791:作业(DP)
    BZOJ1972:[SDOI2010]猪国杀(模拟)
  • 原文地址:https://www.cnblogs.com/realadmin/p/10009393.html
Copyright © 2020-2023  润新知