base64编码和解码
window.btoa 和 window.atob,
兼容性
兼容性IE10以上和其他浏览器都支持 。
中文编码
中文编码,window.btoa('北京'),是会抛出异常的。
那么一般先用encodeURIComponent进行base64编码,然后用decodeURIComponent进行base64解码。
借用:https://www.cnblogs.com/wangchaoyuana/p/7497372.html
看到MDN的备注,
function utf8_to_b64( str ) {
return window.btoa(unescape(encodeURIComponent( str )));
}
function b64_to_utf8( str ) {
return decodeURIComponent(escape(window.atob( str )));
}
// Usage: 以下好好思考
utf8_to_b64('✓ à la mode'); // "4pyTIMOgIGxhIG1vZGU="
b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
//译者注:在js引擎内部,encodeURIComponent(str)相当于escape(unicodeToUTF8(str))
//所以可以推导出unicodeToUTF8(str)等同于unescape(encodeURIComponent(str))