介绍
window.atob( String ) 将一个字符串编码为一个Base64字符串。
window.btoa( String ) 解码一个Base64字符串。
用法
只有字符串才能被转换,支持转换 ASCII字母和数字,但不支持中文!
基本用法
// 转base64
var a = btoa("abcde");
// 转码结果 "YWJjZGU="
// 解码结果
var b = atob(a);
// 解码结果 "abcde"
// 注意,如果想转换中文会直接报错,具体方法见下文
// 中文转换base64
var c = btoa("你好啊");
// 直接报错 VM275:1 Uncaught SyntaxError: Invalid or unexpected token
中文转换方法
// 先将中文转换为URL组件格式,再转为base64形式的
var d = btoa(encodeURIComponent("哈哈"));
// 结果 "JUU1JTkzJTg4JUU1JTkzJTg4"
// 注意解析时就需要先解码为URL组件格式,再转换为中文,就是先进后出的原则
var ff = decodeURIComponent(atob(d));
// 结果 "哈哈"
浏览器兼容性
Desktop | Mobile | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | |
atob | 支持 | 支持 | 部分支持 | 10以上支持 | 支持 | 支持 | 支持 | 支持 | 未知 | 4以上支持 | 未知 | 支持 | 未知 |