首页 >后端开发 >Golang >为什么我在解码时收到'输入字节 4 处存在非法 Base64 数据”错误?

为什么我在解码时收到'输入字节 4 处存在非法 Base64 数据”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 14:41:09366浏览

Why Am I Getting an

解决 Base64 解码中的“输入字节 4 处存在非法 Base64 数据”错误

使用 base64.StdEncoding.DecodeString(str) 时,出现指示“非法 Base64 数据”的错误在输入字节 4" 处可能会发生。当提供用于解码的输入字符串包含非 Base64 编码数据时,就会出现此问题。

了解数据 URI 方案

通常,输入字符串不是直接 Base64 编码的,而是而是数据 URI 方案的一部分。此方案使用以下格式将数据作为内联资源嵌入网页中:

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

在提供的错误的情况下,输入字符串表示具有 image/png MIME 类型的数据 URI。要提取实际的 Base64 编码数据:

input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA"

b64data := input[strings.IndexByte(input, ',')+1:]

这会消除前缀,只留下 Base64 编码数据。

解码提取的 Base64 数据

一旦获得Base64编码数据(b64data),就可以使用base64.StdEncoding.DecodeString() 函数提取原始数据。例如:

data, err := base64.StdEncoding.DecodeString(b64data)
if err != nil {
    fmt.Println("error:", err)
}
fmt.Println(data)

以上是为什么我在解码时收到'输入字节 4 处存在非法 Base64 数据”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn