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

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

Mary-Kate Olsen
发布: 2024-12-01 00:40:11
原创
728 人浏览过

Why Am I Getting a

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

尝试使用 base64.StdEncoding 解码 Base64 编码的字符串时.DecodeString(str),您可能会遇到错误:“输入字节处存在非法base64数据4.”此错误表明提供的输入不是有效的 Base64 格式。

您的情况的问题不在于 Base64 编码本身,而在于输入字符串。您正在尝试解码数据 URI 方案,而不是纯 Base64 字符串。

数据 URI 方案将网页中的数据表示为内联内容,如下所示格式:

数据:[][;charset=][;base64],

在您的情况下,输入是包含 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板