zoukankan      html  css  js  c++  java
  • 字符编码,python2和python3编码的区别

    1.字符编码

    字符(存储信息的东西) 编码(01010101010)——》键盘。

    文本编辑器存储信息的过程:

    文本编辑器 --》 写文本 --》 存储信息

    显示屏(内存)--》 (转换)硬盘。

    1.1 ascii编码 --》英国人

    ascii :只用于英文,最多只能用 8 位来表示(一个字节或者一个字母),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

    python 中

    ascii编码的转换关系的方法:

    print(chr(65)) # A
    print(ord('a')) # 97 查找ascii 表中的相对元素的含义。

    1.2 unicode(可识别万国码)

    unicode:万国码,32为表示一个东西,2**32.

    硬盘中无论躺着什么格式的编码文件,unicode都可以识别,假设你看日本的片子,从硬盘中读取fuck编码,然后unicode识别,unicode帮你转换成gb2312,解决了乱码的问题,用unicode存

    • 都用unicode取,又用unicode存,以后写代码只能写Unicode --》 以后全世界的代码都是unicode

    • unicode存的时候多占用空间,所以出现了utf8(只和unicode一一对应)--》解决了unicode内存占用的问题

    • 现在所有的电脑都是这样的 --》: 内存中unicode取,存用utf8存(硬盘),全世界的人写代码/写文件都是用utf8

      未来有一天会用到:utf-8

    1.3 utf-8

    utf-8:给unicode压缩,用尽量少的东西表示一个的东西,以8位单位的utf-8

    最少用一个字节 == 8位表示,最多用4个字节 == 32为表示。中文:3个字节 = 24位表示。

    1.4 unicode与ascii的表示

    在硬盘存储时unicode消耗内存大 ,但unicode表示东西更多。一句话:浪费内存空间。

    utf-8归纳:适用于数据保存,占用空间小。

    windows系统的记事本默认编码 是 gbk,除此之外都是utf8

    用什么编码写,就用什么编码读

    写用utf8,存用utf8,读用gbk--》乱码

    写用utf8,存用gbk,--》乱码 ,读用 --》除非你找日文编码,放入中文 の(中文的一个符号,不是日文的“的”)

    1.5编码和解码

    unicode编码 ---》(编码) utf8 从内存到硬盘

    utf8 --》(解码) unicode 从硬盘到内存

    现在内存只有unicode编码

    python解释器(文本编辑器)解释python代码的流程

    2.02 python2和python3编码的区别

    终端有一个特性:你的电脑是什么编码,就按照什么编码的来,windows终端是gbk

    python2和python3的编码区别:

    python2

    • python2有两种存储变量的形式,第一种:unicode;第二种:按照coding头来的
    • 假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk的变量x,但是windows终端编码是utf8,会乱码
    • 假设python2用unicode存储,终端接受的是unicode,windows终端编码是utf8还是gbk重要吗?不会乱码=
    # coding:gbk
    lt1 = '中文'  # utf存储的
    # lt1 = ['中文']  # []让他不用终端的编码转化,显示01010101001
    print lt1  # ['xe4xb8xadxe6x96x87']
    
    lt2 = u'中文'  # u'中文'让他变成unicode  # 早期用python2定义中文,必须得加上u,让他变成unicode存储
    # lt2 = [u'中文']
    print lt2  # '中文'
    

    python3

    • python3只有一种存储变量的形式,unicode
    • python3用unicode存储,终端接收的是unicode,widonws终端编码是utf还是gbk不重要,不会乱码
    lst = "中文"   # == u'中文'
    print(lst)
    

    列:

    # coding:gbk
    # print('中文%s'%('描述'))  # 用gbk写的,但是python2默认用acill读取字符
    
    
  • 相关阅读:
    使用 VS Code 开发和调试 Burp Suite 扩展
    后渗透神器 Empire 基础用法
    5种语言的按钮事件 断点
    X64下MmIsAddressValid的逆向及内存寻址解析
    x64 内存共享区 KUSER_SHARED_DATA
    内存映射+远线程 调用游戏CALL
    C语言运算符总结
    x32 x64的不同传参方式
    内存占用的一些小问题
    x64分页机制 9
  • 原文地址:https://www.cnblogs.com/WQ577098649/p/11534158.html
Copyright © 2011-2022 走看看