use*_*717 21 javascript base64 decode image
我正在尝试将图像的base64字符串解码为二进制文件,以便可以通过操作系统在本地下载和显示.
我作为带有数据URI前言的HTML IMG元素的src(数据:img/png; base64,)成功呈现的字符串,但是当使用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
Run Code Online (Sandbox Code Playgroud)
base64字符串本身太长而无法显示(限制为30,000个字符)
Ros*_*117 38
我只是把头撞在墙上一段时间了.
这个问题有几个可能的原因.1)Utf-8问题.这里有一个很好的写作+解决方案. http://monsur.hossa.in/2012/07/20/utf-8-in-javascript.html
在我的情况下,我还必须确保所有空格都在字符串之外,然后再将其传递给atob.例如
function decodeFromBase64(input) {
input = input.replace(/\s/g, '');
return atob(input);
}
Run Code Online (Sandbox Code Playgroud)
真正令人沮丧的是base64使用python中的base64库正确解析,而不是在JS中解析.
| 归档时间: |
|
| 查看次数: |
19841 次 |
| 最近记录: |