var str = 'javascript'
btoa(str)
//转码结果 'amF2YXNjcmlwdA=='
atob('amF2YXNjcmlwdA==')
//解码结果 'javascript'
说到这里问题来了,有同学问,假如中文字符串要怎么解决呢?
var str ='hello,中国'
btoa(str)
> Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
at <anonymous>:2:8
根据浏览器报错提示,我们需要把中文进行 encode
var str = 'hello,中国'
window.btoa(window.encodeURIComponent(str))
//'aGVsbG8lRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='
window.decodeURIComponent(window.atob('aGVsbG8lRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
//'hello,中国'
JavaScript 原生是支持 base64 的转解码,在移动端兴起的今天 base64 更加是起到了不可替代的作用。
过多的理论知识就不多少,上代码:
说到这里问题来了,有同学问,假如中文字符串要怎么解决呢?
根据浏览器报错提示,我们需要把中文进行 encode