window.btoa()无法操作超出0x00 ~ 0xFF范围的字符,然后MDN给出了一个例子
// ucs-2 string to base64 encoded ascii
function utoa(str) {
return window.btoa(unescape(encodeURIComponent(str)));
}
// base64 encoded ascii to ucs-2 string
function atou(str) {
return decodeURIComponent(escape(window.atob(str)));
}
但是我这里不明白为啥要这样处理,不能像下面这样,不是更简单么?
let base64Str = window.btoa(encodeURIComponent("你好啊"));
console.log(decodeURIComponent(window.atob(base64Str)));