You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python3实现Java的Base64解码功能并解决填充报错问题

错误原因

报错是因为Java的Base64.getDecoder()默认支持无填充的Base64串解码,而Python标准库的base64.b64decode默认执行严格的填充校验:标准Base64编码结果长度必须为4的整数倍,不足时用=补位,你使用的串/bCN99cbY13kwEf+wnRErg长度为22,缺少2个填充符=,因此触发填充校验错误。

解决方案

方案1:手动补全填充(兼容所有Python3版本)

通过规则计算需要补充的填充符数量,补全后再解码即可:

import base64

raw_str = "/bCN99cbY13kwEf+wnRErg"
# 计算需要补充的填充符数量
padding_needed = (4 - len(raw_str) % 4) % 4
full_b64_str = raw_str + "=" * padding_needed
# 按ISO_8859_1编码转字节后解码
decode_result = base64.b64decode(bytes(full_b64_str, encoding="iso-8859-1"))
print(len(decode_result)) # 输出16

方案2:跳过填充校验(Python3.10及以上版本适用)

直接使用validate=False参数关闭填充校验,和Java默认逻辑完全对齐:

import base64

raw_str = "/bCN99cbY13kwEf+wnRErg"
text = bytes(raw_str, encoding="iso-8859-1")
decode_result = base64.b64decode(text, validate=False)
print(len(decode_result)) # 输出16

内容的提问来源于stack exchange,提问作者sdfjl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:27:02