js原生Base64转码和解码函数btoa和atob的使用
定义
atob():解码一个Base64字符串。
btoa():从一个字符串或者二进制数据编码一个Base64字符串。
兼容性
window.btoa和window.atob在现代浏览器中受到广泛的支持。 支持浏览器如下:
IE:10+
Chrome:4+
Firefox:2+
Safari:3.1+
Opera:11.5+
使用
只有字符串才能被转换。码位须在 0x00 ~ 0xFF 范围
1.默认转换 ASCII字母和数字,不支持中文
// 转base64
var aa = btoa("dddddddd");
// 转码结果 "ZGRkZGRkZGQ="
// 解码结果
var bb = atob(aa);
// 解码结果 "dddddddd"
// 注意,如果想转换中文会直接报错,具体方法见下文
// 中文转换base64
var cc = btoa("哈哈");
// 直接报错 VM275:1 Uncaught SyntaxError: Invalid or unexpected token2.转换中文的方法
// 先将中文转换为URL组件格式,再转为base64形式的
var dd = btoa(encodeURIComponent("哈哈"));
// 结果 "JUU1JTkzJTg4JUU1JTkzJTg4"
// 注意解析时就需要先解码为URL组件格式,再转换为中文,就是先进后出的原则
var ff = decodeURIComponent(atob(dd));
// 结果 "哈哈"为了考虑兼容性,就需要我们封装一个base64方法,该如何实现呢?请参考之前的一篇文章,地址:http://www.fly63.com/article/detial/390
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!