首页 >后端开发 >Golang >为什么 base64.StdEncoding.DecodeString(str) 失败并出现'输入字节 4 处存在非法 base64 数据”错误?

为什么 base64.StdEncoding.DecodeString(str) 失败并出现'输入字节 4 处存在非法 base64 数据”错误?

Patricia Arquette
Patricia Arquette原创
2024-12-02 22:15:19259浏览

Why Does base64.StdEncoding.DecodeString(str) Fail with

使用base64.StdEncoding.DecodeString(str)时“输入字节4处存在非法base64数据”

尝试使用base64.StdEncoding.DecodeString(解码Base64Image时) str),用户可能会遇到错误“输入字节 4 处存在非法的 base64 数据”。发生这种情况是因为输入字符串并非完全 Base64 编码。

提供的输入是数据 URI 方案,这是一种用于在网页中嵌入数据(例如图像)的格式。它遵循以下结构:

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

在给定的示例中,MIME 类型为“image/png”,“;base64”表示数据组件是 Base64 编码的。

要提取 Base64 编码数据,请删除前缀(包括逗号):

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

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

现在,您可以解码 Base64 string:

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

此过程将成功解码图像数据,而不会遇到“输入字节 4 处非法的 Base64 数据”错误。

以上是为什么 base64.StdEncoding.DecodeString(str) 失败并出现'输入字节 4 处存在非法 base64 数据”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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