var str = 'javascript';
window.btoa(str)// "amF2YXNjcmlwdA=="
window.atob("amF2YXNjcmlwdA==")// "javascript"
二.对于转码来说,Base64转码的对象只能是单字节字符串,对于多字节的中文会报错如下:
var str = "China,中国"
window.btoa(str)
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
如果要支持中文这就要使用window.encodeURIComponent和window.decodeURIComponent
var str = "China,中国";
window.btoa(window.encodeURIComponent(str)) //"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="
window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
//"China,中国"