zoukankan      html  css  js  c++  java
  • Python3的decode()与encode()

    python3的decode()与encode()

    Tags: Python Python3


    对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰的区分。文本总是Unicode,由str类型进行表示,二进制数据使用bytes进行表示,不会将strbytes偷偷的混在一起,使得两者的区别更加明显。在python2中会明显发现不能将strbytes拼接在一起,也不能在bytes中查找字符。
    然而在实际应用中经常需要对两者进行转换操作以便后续的代码能够顺利跑完。两者之间的关如下所示:

    str->bytes:encode编码
    bytes->str:decode解码
    

    字符串通过编码成为字节码,字节码通过解码成为字符串。

    >>> text = '我是文本'
    >>> text
    '我是文本'
    >>> print(text)
    我是文本
    >>> bytesText = text.encode()
    >>> bytesText
    b'xe6x88x91xe6x98xafxe6x96x87xe6x9cxac'
    >>> print(bytesText)
    b'xe6x88x91xe6x98xafxe6x96x87xe6x9cxac'
    >>> type(text)
    <class 'str'>
    >>> type(bytesText)
    <class 'bytes'>
    >>> textDecode = bytesText.decode()
    >>> textDecode
    '我是文本'
    >>> print(textDecode)
    我是文本
    

    对于这些可以这么理解:

    编码就是将字符串转换成字节码,涉及到字符串的内部表示。
    解码就是将字节码转换为字符串,将比特位显示成字符。

    其中decode()encode()方法可以接受参数,其声明分别为:

    bytes.decode(encoding="utf-8", errors="strict")
    str.encode(encoding="utf-8", errors="strict")

    其中的encoding是指在解码编码过程中使用的编码(此处指“编码方案”是名词),errors是指错误的处理方案。

    详细的可以参照官方文档:
    str.encode()
    bytes.decode()

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/tingyugetc/p/5727383.html
Copyright © 2011-2022 走看看