使用 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中文网其他相关文章!