我在使用 base64.b64decode()
解码 base64 文本时遇到了一些问题。我有一个功能:
import base64
def base64_to_bin(base):
decoded = ''
for letter in base64.b64decode(base):
decoded += bin(letter)[2:].zfill(8)
return decoded
如果我做 base64_to_bin('YQ==')
,我会得到 01100001
。如果我做 base64_to_bin('fXBz')
,我会得到 011111010111000001110011
。但是,如果我将 f
、X
或 B
上移(或者应该下移?)一个字母,我会得到:
for letter in base64.b64decode(base).decode():
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 0: invalid start byte
为什么改变一个字母会破坏它?