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()

  • 相关阅读:
    程序员保持快乐活跃的6个好习惯(转)
    Spring MVC Hello World Example(转)
    Oracle定时执行存储过程(转)
    各种常见数据库分页实现(转)
    Linux SSH常用总结(转)
    让人深思......
    void及void指针含义的深刻解析
    UVa 11988
    网络编程学习小结
    Deep Learning(深度学习) 学习笔记(四)
  • 原文地址:https://www.cnblogs.com/tingyugetc/p/5727383.html
Copyright © 2011-2022 走看看