Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么解码表单上的base64字符串时;b''&引用;(使用Python字节对象中的b前缀)是否给出了意外的结果?_Python_Base64 - Fatal编程技术网

为什么解码表单上的base64字符串时;b''&引用;(使用Python字节对象中的b前缀)是否给出了意外的结果?

为什么解码表单上的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

在使用Python的
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==”
不同。