美文网首页
[python] string 与 byte string 的区

[python] string 与 byte string 的区

作者: KEEEPer | 来源:发表于2017-04-06 20:24 被阅读600次

    文章参考:http://stackoverflow.com/questions/6224052/what-is-the-difference-between-a-string-and-a-byte-string


    计算机唯一可以存储的是字节。

    要在计算机中存储任何东西,您必须先对其进行编码,即将其转换为字节。例如:

    • 如果你想存储的音乐,你必须先进行编码使用它MP3,WAV等等。
    • 如果你想存储图片,必须先进行编码使用它PNG,JPEG等等。
    • 如果你想存储文本,必须先进行编码使用它ASCII,UTF-8等等。

    MP3,WAV,PNG,JPEG,ASCII和UTF-8是的示例编码。编码是以字节表示音频,图像,文本等的格式。

    在Python中,一个字节串(byte string)就是:一个字节序列。它不是人类可读的。在抽象的表层(hook)下,必须将所有内容转换为字节串,然后才能存储在计算机中。

    另一方面,通常称为“字符串”的字符串是字符序列。它是人类可读的。字符串不能直接存储在计算机中,它必须首先编码(转换成字节串)。有多种编码格式,通过它们可以将字符串转换为字节串,例如ASCII格式和UTF-8格式。

    • 'I am a string'.encode('ASCII')

    以上Python代码将'I am a string'使用编码对字符串进行编码ASCII。上述代码编码后的结果将是一个字节串。如果你打印它,Python将使用b'I am a string'来代表它。但是请记住,字节字符串不是人类可读的,只是Python ASCII在打印(print)的时候解码它们。在Python中,字节串由b前缀来表示,后跟字节串的ASCII表示。

    如果您知道用于对其进行编码的编码,则字节字符串可以解码回到字符串中。

    • b'I am a string'.decode('ASCII')

    上述代码将返回原始字符串'I am a string'。

    编码和解码是反向操作。一切都必须先编码,然后才能写入磁盘,并且必须先将其解码,才能被人类读懂。

    相关文章

      网友评论

          本文标题:[python] string 与 byte string 的区

          本文链接:https://www.haomeiwen.com/subject/zptfattx.html