gpt4 book ai didi

javascript - javascript 中有效的 base64 图像字符串出现 DOM 异常 5 INVALID CHARACTER 错误

转载 作者:行者123 更新时间:2023-12-02 23:37:09 31 4
gpt4 key购买 nike

我正在尝试将图像的 Base64 字符串解码回二进制,以便操作系统可以在本地下载和显示它。

当将字符串作为带有数据 URI 前缀(数据:img/png;base64, )的 HTML IMG 元素的 src 时,我成功渲染了该字符串,但是当使用 atob 函数或 goog 闭包函数时,它失败了。

但是,当放入此处时解码会成功:http://www.base64decode.org/

有什么想法吗?

编辑:我成功地用除了内置 JS 函数之外的另一个库来解码它。但是,它仍然无法在本地打开 - 在 Mac 上,它表示它已损坏或格式未知,无法打开。

代码就像这样:

imgEl.src = 'data:img/png;base64,' + contentStr; //this displays successfully
decodedStr = window.atob(contentStr); //this throws the invalid char exception but i just
//used a different script to get it decode successfully but still won't display locally

base64 字符串本身太长,无法在此处显示(限制为 30,000 个字符)

最佳答案

我只是在这件事上用头撞墙了一段时间。

导致该问题的可能原因有多种。 1)UTF-8问题。有一篇很好的文章+解决方案here .

就我而言,在将字符串传递给 atob 之前,我还必须确保字符串中没有所有空格。例如

function decodeFromBase64(input) {
input = input.replace(/\s/g, '');
return atob(input);
}

真正令人沮丧的是,在Python中使用base64库可以正确解析base64,但在JS中却不能。

关于javascript - javascript 中有效的 base64 图像字符串出现 DOM 异常 5 INVALID CHARACTER 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695988/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com