为什么解码表单上的base64字符串时;b''&引用;(使用Python字节对象中的b前缀)是否给出了意外的结果?
在使用Python的为什么解码表单上的base64字符串时;b''&引用;(使用Python字节对象中的b前缀)是否给出了意外的结果?,python,base64,Python,Base64,在使用Python的base64.b64decode函数处理包含b'…'的字符串时,我遇到了一个奇怪的问题。这是说明问题的代码片段 >>> base64.b64encode(b"AAAA") b'QUFBQQ==' >>> s1 = "b'QUFBQQ=='" >>> s2 = "QUFBQQ==" >>> base64.b64decode(s1) b'm\x05\x05\x05\x04' >>> base
base64.b64decode
函数处理包含b'…'
的字符串时,我遇到了一个奇怪的问题。这是说明问题的代码片段
>>> base64.b64encode(b"AAAA")
b'QUFBQQ=='
>>> s1 = "b'QUFBQQ=='"
>>> s2 = "QUFBQQ=="
>>> base64.b64decode(s1)
b'm\x05\x05\x05\x04'
>>> base64.b64decode(s2)
b'AAAA'
来自base64.b64encode(b“AAAA”)
的结果被复制并保存为字符串s1
。我还只复制字节(即b'…'
)并将其保存为字符串s2
。当使用s1
调用base64.b64 decode
时,我得到了无意义的结果,而使用s2
调用它会得到预期的结果。我怀疑“
符号导致了一些问题,因为它不是有效的base 64符号
在base64.b64解码(s1)
中发生了什么,导致了奇怪的结果 当您设置
s1 = "b'QUFBQQ=='"
然后字符串包括b和两个单条TIC。只要去掉双引号:
s1 = b'QUFBQQ=='
单引号外的“b”表示将其解释为字节文字
b'QUFBQQ==”
与“b'QUFBQQ==”
不同。