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

    字符编码

    一、计算机基础

    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编码的变量
  • 相关阅读:
    Kali渗透测试工具-netcat
    信息收集工具-dimtry
    Beef xss神器
    Scapy编写ICMP扫描脚本
    全国职业技能大赛信息安全管理与评估-MySQL弱口令利用
    crawler 听课笔记 碎碎念 2 一些爬虫须知的基本常识和流程
    crawler 听课笔记 碎碎念 3 关于python的细枝末节的回顾复习
    关于互信息(Mutual Information),我有些话要说
    最让人头疼的清洗数据过程----选择合适的方式快速命中所需的数据
    利用小虫虫做一枚合格宅男,果然牡丹花下做鬼也风流
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11315942.html
Copyright © 2011-2022 走看看