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

    1.回顾:

    软件→操作系统→硬件

    2.文本编辑器:

        启动:硬盘→内存→运行(cpu)

        读文件:硬盘→内存→CPU读

        存文件:保存到硬盘中

    3.python解释器

        启动:硬盘→内存→运行(cpu)

        读文件:硬盘→内存→CPU读

    (这两阶段与文本编辑器相同,但第三阶段就不同了,关系到语法等问题)

        解释执行:这个阶段就要在内存中开辟新的空间

    4.字符编码:顾名思义就是编码字符的

    ①字符编码的作用:把人能识别的字符通过一种标准翻译成计算能识别的二进制,翻译过程的标准就是字符编码表

    ②不同的字符编码表

    ASCII

        用8个位表示一个字节bytes,共可表示2**8=256种

    GBK

        用2个bytes表示1个字符,共2**16种

    Unicode(万国码)

        用2个bytes表示1个字符(但是在保存英文字符的时候就浪费空间)

    UTF-8(万国码)

        对英文存1个bytes,中文存3个bytes

    5.计算机内存中用Unicode(速度快),硬盘中用UTF-8(占用空间小,传输稳定)

    6.保存文件过程:内存Unicode   →   encode   →   硬盘UTF-8/或其他字符编码

       读取文件过程:硬盘UTF-8/或其他字符编码  →  decode   →   内存Unicode

    7.以上总结:

    ①存文件的时候用的什么编码(encode)取的时候就要用什么编码取(decode)

    ②python3解释器默认的字符编码是UTF-8,可以更改:   #coding:gbk或其他

    ③python2解释器默认的字符编码是ASCII,可以更改:   #coding:uft-8或其他

    8.python解释器第三阶段才用到字符串,执行中遇到字符串就会开辟新的内存空间存起来。

    在python3中字符串都是unicode格式的二进制存放在内存中,而在python2中字符串都是已经encode后的结果,即bytes。

    9.Unicode   →   encode   →   bytes

       bytes       →   decode   →   Unicode

    10.python3中有两种形式的字符串:

        ①.Unicode(解释器自动控制)

        ②.bytes(Unicode→encode→bytes)(人为控制)

    11.python2的字符串有两种:

        ①.   str = bytes(Unicode→encode→bytes)(解释器自动控制)

        ②.   u'  字符串  '       (相当于python3中的Unicode)

    12.为什么要有bytes:

         计算机最基本的传输信号就是二进制,就相当说最基本的传输信号就是bytes,所以数据要传输就要用bytes。

        

  • 相关阅读:
    Struts2---配置文件讲解及简单登录示例
    Struts2---环境搭建及包介绍
    Struts2---概述
    Spring---bean的作用域
    Spring---bean的实例化
    Sql Server 2005 .bak备份文进行还原数据库
    Windows Server 2003 R2 With Sp2 序列号
    [Idea]安装avtiviti插件以及 插件中文乱码
    IDEA 跑spring项目找不到get,set的问题
    SpringBoot 集成Avtiviti步骤
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/7230678.html
Copyright © 2011-2022 走看看