Uncaught DOMException: Failed to execute ‘btoa’ on ‘Window’
在使用js btoa
编码为base64
的时候
报错提示
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
只有含有中文的时候才会报错,如果是英文和数字的话就不会有错误
这个问题前段时间就遇到过一次了,然后网上查了一下解决了,今天再一次遇到,突然有点懵,于是查看了之前的代码
解决办法
只需要btoa在中间再套一层编码转换,使用encodeURI
转换一下编码即可
btoa(encodeURI('哩哩啦啦'));
使用atob解码base64时候同理,也需要套一层decodeURI解码
decodeURI(atob('base64'))