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编码的变量
  • 相关阅读:
    .net类库里ListView的一个BUG
    获取lable的caption, 摘抄还未测试可用否
    (转) lua实现split的简易方法
    2. SharePoint Online 开发,请联系qq512800530。加好备注。(不要发站内信。。。)
    1. android
    开发人员应关注的20个jQuery网站/博客
    Temp
    彩票项目开发节项
    求android ble 解决方案!
    自己开发的工作流引擎
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11315942.html
Copyright © 2011-2022 走看看