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

为何Python可解码该Base64字符串而Go报illegal base64 data错误?

问题原因分析

核心差异:Base64编码模式的不同

  • Python的b64decode()默认适配标准Base64编码(允许末尾的填充字符=),它会自动识别并处理合法的填充内容,所以能成功解码带==的目标字符串。
  • Go的base64.RawStdEncoding对应的是原始标准Base64编码,这种模式明确要求输入字符串不能包含填充字符=,而目标字符串//Py+vX7suTx8A==末尾带有两个填充=,不符合Raw模式的输入要求,因此触发"illegal base64 data"错误。

补充:Go的正确解码方式

如果要在Go中解码该带填充的字符串,应该使用支持填充的标准编码模式base64.StdEncoding,示例代码:

data, err := base64.StdEncoding.DecodeString("//Py+vX7suTx8A==")
// 此时err为nil,data结果与Python解码一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:17:04