首页 > 解决方案 > 编解码器无法解码字节 - base64-decoding

问题描述

我在解码 base64 文本时遇到了一些问题,使用base64.b64decode(). 我有一个功能:

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. 但是,如果我将fXB向上(或者应该向下?)移动一个字母,我会得到:

for letter in base64.b64decode(base).decode():
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 0: invalid start byte

为什么更改一个字母会破坏它?

标签: pythonbase64

解决方案


推荐阅读