• 字符编码


    字符编码

    一、计算机基础

    1、cpu:控制程序的运行(从内存中取出文本编辑器的数据读入内存)

    2、内存:运行程序(经CPU操作后,内存中含有文本编辑器的数据)

    3、硬盘:存储数据(文本编辑器)

    二、文本编辑器

    计算机只认识0和1

    文本编辑器的作业:读写数据,保存数据

    三、python解释器

    具有文本编辑器的功能

    01010110101 --> a = 1 #很普通的字符,python解释器没有运行的时候提供的。字符编码

    a=1 --> 01010110101 #需要一定的0和1表示他为字符串,python解释器运行的时候提供的。

    四、字符编码

    二进制和你所能认识的字符之间的相互转换的过程

    unicode: 认识万国语言,万国编码,他把 8位的英文变成了16位的英文, 多占用了内存空间,此时utf8对Unicode做了优化,减小了内存占用,但是utf8并不认识各个国家的字符编码。

    五、什么情况会出现乱码

    编码格式不统一

    举个栗子

    #文本编辑器支持的是utf8 ,你输入的是gbk  --> 文件的存储
    
    #文件存储用了utf8 ,但是下次打开用了gbk --> 文件的读取
    

    六、乱码的两种情况

    举个栗子

    #中文的文本编辑器只认识中文,然后输入了日文 --> 乱码  # encode 编码
    
    #文本编辑器存储了中文(文件),但是用日本的编辑器打开这个文件 --> 乱码  # decode 解码
    

    七、怎样解决乱码

    什么格式存储,就什么格式读取

    ps:windows电脑的记事本默认为gbk编码,除此之外其他的软件默认编码为utf8

    八、python2和python3的区别

    8.1 python解释器运行代码的流程

    1. 启动python解释器(相当于文本编辑器)
    2. 打开文件,显示这个字符并检查语法(涉及字符编码),相当于一个文本编辑器,从硬盘把test.py文件的内容读入内存,读取test.py中的内容。
    3. 执行刚刚从硬盘中获取的内容,解释字符  (生成变量就开辟内存空间存放变量,存放变量存放到内存中,涉及字符编码)
    

    8.2 区别

    python2 python3
    unicode + 指定的coding编码(str类型) unicode+终端

    python2:

    # coding:gbk
    a = '中文'  # 用gbk编码存储了这堆0和1
    a = u'中文'  # 用unicode编码存储了这堆0和1   #加“u”是为了告诉解释器文件类型是utf8,不然就会乱码
    print(a)
    

    python3:

    # coding:gbk
    a = '中文'  # 用unicode编码存储了这堆0和1
    print(a)  # 010101010
    

    终端是一个文本编辑器,会有默认编码

    终端
    假设终端的默认编码是gbk , 认识 unicode编码的变量
    假设终端的默认编码是utf8,认识 unicode编码的变量
    假设终端的默认编码是gbk , 认识 gbk编码的变量
    假设终端的默认编码是utf8, 不认识 gbk编码的变量
  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11315942.html
Copyright © 2020-2023  润新知