最近在改一个bug, 使用图片的base64编码 进行压缩时一直报错,Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded

深入查看原因后,发现是base64 在被传入 atob函数时报的错误,  atob有过初略的了解应该是解码之类的函数,那应该错误的原因就是解码失败了。

经过多次调试,发现了问题所在, 正常情况如上图 是可以使用atob解码 base64的

但是在 base64编码赋值给 new Image()对象的src属性之后就会报错

let img = new Image()

img.src =  base64编码//

重新打印这时候的 img.src 值会发现,base64 编码中多了许多 %0A和空格字符, 虽然不知道原因是为什么。

这里只能列出一个解决方案:

base64字符串.replace(/%0A|\s/g,''))

这样使用正则 就能去掉多余的空格 和%A 了, 重新在放在atob函数内 就不会报错了

最近在改一个bug, 使用图片的base64编码 进行压缩时一直报错,Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded深入查看原因后,发现是base64 在被传入 atob函数时报的错误, atob有过初略的了解应该是解码之类的函数,那应该错误的原因就是解码失败了。经过多次调试,发现了问题所在, 正常情况如上图 是可以使用atob解码 base64的但..
这是什么? 这是MATLAB Runtime Reference环境的模板。 该环境包含一组脚本,这些脚本安装了MATLAB Compiler Runtime,以执行已编译的MATLAB代码。 如何使用? $ git clone https://github.com/uomsystemsbiology/matlab_runtime.git $ cd matlab_runtime $ vagrant up 这将构建参考环境,下载MATLAB Compiler Runtime,并将模板执行脚本复制到桌面和根目录中。 您可以下载或包含自己的已编译MATLAB代码,并使用类似于'run_experiments.sh'执行脚本中的语法来运行它。
在过程中,发现 报错 如下: failed to execute ' atob ' on ' window ': the string to be decode d is not cor rectly encoded. 后来在看 atob 和btoa的demo时发现 base64 字符串仅仅是后面的乱七八糟字符串好吗,没有前面的名片。 var str = "Hello World!"; var enc = window .btoa(str); var dec = window . atob (enc); var res = "En
data:image/png; base64 ,iVBORw0KGgoAAAANSUhEUgAABGU.... 报错 是因为没有去除data:image/png; base64 ,应只要后面的文件流 1. base64 : 可以直接当作链接地址使用
Uncaught DONException: Failed to execute atob ‘ on “ window ‘: The string to be decode d is not carrec
Base64 是网络上最常见的用于传输8Bit字节码的编码方式之一, Base64 就是一种基于64个可打印字符来表示二进制数据的方法。 Base64 编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了 Base64 来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用 Base64 编码具有不可读性,需要 解码 后才能阅读。 publi
Bootstrap 栅格系统 学习总结   Bootstrap框架是如今最流行的前端框架之一,Bootstrap功能强大,简单易学,很符合实际应用场景。   只是Bootstrap的内容较多,新手