Base64 解码错误:“输入字节 4 处存在非法 Base64 数据”
尝试使用 base64.StdEncoding 解码 Base64 编码的字符串时.DecodeString(str),您可能会遇到错误:“输入字节处存在非法base64数据4.”此错误表明提供的输入不是有效的 Base64 格式。
您的情况的问题不在于 Base64 编码本身,而在于输入字符串。您正在尝试解码数据 URI 方案,而不是纯 Base64 字符串。
数据 URI 方案将网页中的数据表示为内联内容,如下所示格式:
数据:[
在您的情况下,输入是包含 image/png MIME 类型和 Base64 编码数据的数据 URI 方案。要解码它,您首先需要提取 Base64 部分。
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:] fmt.Println(b64data)
输出:
iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA
现在您可以解码提取的 Base64 字符串:
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
输出:
[137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 100 0 0 0 100 8 6 0]
通过从 Data URI 中提取 Base64 数据方案并执行解码过程,您可以成功解码 Base64 编码的内容。
以上是为什么在解码数据 URI 时收到'输入字节 4 处存在非法 Base64 数据”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!