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
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!