Javascript 使用atob()方法时出现无效字符错误
我在stack overflow中读到一个问题,该代码在IE10中工作,但在ie9中不工作 但我仍然面临这个问题Javascript 使用atob()方法时出现无效字符错误,javascript,internet-explorer-10,Javascript,Internet Explorer 10,我在stack overflow中读到一个问题,该代码在IE10中工作,但在ie9中不工作 但我仍然面临这个问题 var image = canvas.toDataURL(); image = image.replace(/^data:[a-z]*;,/, ''); var byteString = atob(image); var buffer = new ArrayBuffer(byteString.length); var intArray = new Uint8Array(buffer)
var image = canvas.toDataURL();
image = image.replace(/^data:[a-z]*;,/, '');
var byteString = atob(image);
var buffer = new ArrayBuffer(byteString.length);
var intArray = new Uint8Array(buffer);
for (var i = 0; i < byteString.length; i++) {
intArray[i] = byteString.charCodeAt(i);
}
blob = new Blob([buffer], {type: "image/png"});
window.navigator.msSaveOrOpenBlob(blob, "test.png");
var image=canvas.toDataURL();
image=image.replace(/^data:[a-z]*;,/,'');
var byteString=atob(图像);
var buffer=newarraybuffer(byteString.length);
var intArray=新的Uint8Array(缓冲区);
for(var i=0;i
转换atob(图像)时,会引发异常
0x800a139e-JavaScript运行时错误:InvalidCharacterError
我尝试了几件事,但都没用
我在图像变量中得到了这个
数据:图像/png;base64,一个城市的一个社区的一个社区的一个社区的一个社区的一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区的一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一个社区一7/c3yxwAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=
请帮帮我。。
提前感谢。1)您的base64编码字符串可能不是完全有效的。您可以尝试使用此代码而不是atob
var decodeBase64 = function(s) {
var e={},i,b=0,c,x,l=0,a,r='',w=String.fromCharCode,L=s.length;
var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for(i=0;i<64;i++){e[A.charAt(i)]=i;}
for(x=0;x<L;x++){
c=e[s.charAt(x)];b=(b<<6)+c;l+=6;
while(l>=8){((a=(b>>>(l-=8))&0xff)||(x<(L-2)))&&(r+=w(a));}
}
return r;
};
var decodeBase64=函数{
变量e={},i,b=0,c,x,l=0,a,r='',w=String.fromCharCode,l=s.length;
var A=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzo123456789+/”;
对于(i=0;i(l-=8))&0xff)| |(x如果有人达到了这个值,那么image=image.replace(/^[^,]+,/,'')
解决方案对他们不起作用,我在IE11中调用atob
函数时会遇到同样的错误
在我的例子中,导致错误的原因是base64字符串有一个回车符,每个回车符返回76个字符
这对于Chrome或Firefox来说不是问题,但IE11产生了InvalidCharacterError
b64Data=b64Data.replace(/\r\n/g'')
解决了我的问题。在这个字符串中,我只是删除了这个,它对我来说很有用。.数据:image/png;base64,非常感谢你。.这太好了。.是的,我知道blob不受IE 9及以下版本的支持。我们对IE 9及以下版本还有其他选择吗?@Srinivasan这就是image=image.replace(/^[^,]+,/,'');
正在做的事情