zoukankan      html  css  js  c++  java
  • 二次编码

    二次编码

    编码回顾

    ascii : 英文,数字,符号
        英文: 1个字节,8位
    
    gbk   : 英文,数字,符号,中文
        英文: 1个字节,8位
        中文: 2个字节,16位
    
    unicode : 英文,数字,符号,中文
        英文: 4个字节,32位
        中文: 4个字节,32位
    
    utf-8 : 英文,数字,符号,中文
        英文: 1个字节,8位
        欧洲: 2个字节,16位
        亚洲: 3个字节,24位
    

    二次编码

    在 python 3 的内存中使用的是 Unicode 编码,而硬盘中存储时使用的是用户选择的编码方式[1]。这样一来,就需要进行 Unicode 和其他编码方式的转变,也就涉及到编码解码的问题。

    编码是将字符转化为二进制的形式,使用的是 .encode() 方法:

    s = "你好"
    s1 = s.encode("utf-8")       # 编码
    print(s1)
    
    输出的内容为: b'xe4xbdxa0xe5xa5xbd'
    

    解码是将二进制形式的数据转换成位符,使用的是 .decode() 方法:

    s = b'xe4xbdxa0xe5xa5xbd'
    s2 = s.decode('utf-8')
    print(s2)
    
    输出的内容为: 你好
    

    需要注意的是,用什么方式进行编码,就需要用什么方式进行解码。解码方式使用错误,轻则乱码,重则报错。

    编码的用处主要在两个方面:

    1. 存储,涉及到文件操作
    2. 传输,涉及到网络编程

    1. 对于中文来说,主要是 gbk 和 utf-8 ↩︎

  • 相关阅读:
    剑指offer-02-替换空格
    剑指offer-03-从尾到头打印链表
    剑指offer-01-二维数组中的查找
    JS-几类函数
    【工具使用】—VSCode
    【工具使用】—Chrome工具使用技巧
    【codeReview】button-disabled
    c语言中结构体位段
    结构体位断
    malloc/free与 new/delete的区别
  • 原文地址:https://www.cnblogs.com/shuoliuchina/p/12430800.html
Copyright © 2011-2022 走看看