根据我的测试,标题中的错误仅在Google Chrome中引发。我正在对一个大的XML文件进行base64编码,以便可以下载它:this.loader.src = "data:application/x-forcedownload;base64,"+ btoa("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +"<"+this.gamesave.tagName+">" +this.xml.firstChild.innerHTML +"</"+this.gamesave.tagName+">");this.loader 隐藏的iframe。这个错误实际上是一个很大的变化,因为通常,谷歌浏览器会在btoa通话时崩溃。Mozilla Firefox在这里没有问题,因此问题与浏览器有关。我不知道文件中有任何奇怪的字符。实际上,我确实相信没有非ASCII字符。问: 如何找到有问题的字符并替换它们,以使Chrome不再抱怨?我试图使用Downloadify来启动下载,但是它不起作用。这是不可靠的,不会抛出任何错误以进行调试。
3 回答

白板的微信
TA贡献1883条经验 获得超3个赞
使用btoa与unescape和encodeURIComponent我没有工作。用XML / HTML实体替换所有特殊字符,然后转换为base64表示形式是为我解决此问题的唯一方法。一些代码:
base64 = btoa(str.replace(/[\u00A0-\u2666]/g, function(c) {
return '&#' + c.charCodeAt(0) + ';';
}));
添加回答
举报
0/150
提交
取消