javascript中有效的base64图像字符串出现DOM异常5无效字符错误
DOM Exception 5 INVALID CHARACTER error on valid base64 image string in javascript
我正在尝试将图像的base64字符串解码回二进制,以便操作系统可以在本地下载并显示它。
当我将字符串作为带有数据URI序(data: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字符串本身太长,无法在此处显示(限制为30000个字符)
我只是用头撞墙了一会儿。
这个问题可能有几个原因。1) Utf-8问题。这里有一个很好的写作+解决方案。
在我的例子中,在将字符串传递给atob之前,我还必须确保所有的空白都在字符串之外。例如
function decodeFromBase64(input) {
input = input.replace(/'s/g, '');
return atob(input);
}
真正令人沮丧的是,base64使用python中的base64库进行了正确解析,但在JS中却没有。
我不得不删除b64前面的data:audio/wav;base64,
,因为这是b64的一部分。
var data = b64Data.substring(b64Data.indexOf(',')+1);
var processed = atob(data);
相关文章:
- 未捕获错误:INVALID_STATE_ERR:DOM异常11
- 尝试创建事务时出现DOM IDBDatabase异常11
- 正在获取INVALID_CHARACTER_ERR:DOM异常5
- HTML5音频DOM异常11错误,currentTime=0
- 未捕获错误:NOT_FOUND_ERR:appendChild调用的DOM异常8
- 通过parentNode.removeChild删除元素会引发DOM异常8
- 当请求DOM对象时,XMLHttpRequest.send()抛出异常
- 尝试访问本地存储时 javascript/html5 中的 dom 异常 18
- Javascript HTMLDOM appendChild 导致 DOM 异常 8
- getImageData 导致“未捕获错误:NOT_SUPPORTED_ERR:DOM 异常 9”
- ArrayBufferView未捕获错误:INDEX_SIZE_ERR:DOM异常1
- "SECURITY_ERR:DOM异常18”;当铬扩展使用“时抛出”;EventSrouce”;已初始化
- 我怎么能"getImageData”;从另一个网站?SECURITY_ERR:DOM异常18
- phantomjs使用src图像在canvas.toDataURL上抛出DOM异常18
- AJAX调用错误:错误:NetworkError:DOM异常19
- PUT请求的DOM异常19
- 模板帮助程序中出现异常:错误:Can'不要在没有DOM的组件上使用$
- InvalidStateError:XPath结果出现DOM异常11
- NotFoundError:DOM IDBDatabase在indexedDB中创建事务时发生异常8
- 所有可能的未捕获错误的列表:DOM异常