zoukankan      html  css  js  c++  java
  • Python2和3版本对str和bytes类型的处理

     python2中字符串分为2种类型:

    • 字节类型:str,字节类型,通过decode()转化为unicode类型

    • unicode类型:unicode ,通过encode转化为str字节类型

           字节类型 和 unicode类型的转化:

      • 字节类型通过decode转化为unciode类型
      • unciode类型通过encode方法转化为直接类型
      • 方法的使用和python3相同,但是在方法中默认的编码方式为ascii, 对中文需要手动指定为utf-8

    python3中字符串分为2种类型:

    • str:unicode,通过encode() 转化为bytes

    • bytes:字节类型,通过decode()转化为 str类型

    1. str/bytes

      Python 3 所有的 strings 均是 unicode 类型。

      Python 2 将 strings 处理为原生的 bytes 类型,而不是 unicode。

    # python3 中
    # python3 中
    
    >>> a = '中文'
    
    >>> a
    '中文'
    
    >>> type(a)
    <class 'str'>
    # python2中,由于a已经是字节类型,所以只能对其进行解码变为str类型,不能对其进行编码.(根据2.x版本不同,有时候也不能进行解码)
    # python2中
    
    >>> a = '中文'
    
    >>> a
    'xd6xd0xcexc4'
    
    >>> type(a)
    <type 'str'>
    
    # 相当于 b"中文"  这个写法
    >>> b = b"中文"
    
    >>> b
    'xd6xd0xcexc4'
    
    >>> type(b)
    <type 'str'>

    2. str 与 bytes 之间的类型转换

    str 与 bytes 之间的类型转换如下:

    # str 与 bytes 之间的类型转换如下:
    str -> bytes: bytes(s, encoding='utf8')
    bytes -> str: str(b, encoding='utf-8')
    
    # 通过编码解码的形式对二者进行转换
    str 编码成 bytes 格式: str.encode(s)
    bytes 格式编码成 str 类型: bytes.decode(b)

    另附: python str与bytes之间的转换

    # bytes object
    b = b"example"
     
    # str object
    s = "example"
     
    # str to bytes
    bytes(s, encoding = "utf8")
     
    # bytes to str
    str(b, encoding = "utf-8")
     
    # an alternative method
    # str to bytes
    str.encode(s)
     
    # bytes to str
    bytes.decode(b)
  • 相关阅读:
    Mysql知识总结
    Unity3D UGUI 自动调节大小
    关于 Rijndael 加密
    配置java环境
    二叉查找树
    序列化和反序列化
    关于文件保存/关闭时报错:文件正由另一进程使用,因此该进程无法访问此文件。
    关于Unity中NGUI图片精灵响应鼠标的方法
    用人类的话来描述 里氏转换
    C#中string的相关方法
  • 原文地址:https://www.cnblogs.com/yuanyongqiang/p/10646961.html
Copyright © 2011-2022 走看看