btoa与atob

<script>
        // 把 数据 编译成data  base64编码
        // 这种字符串 好处在: 减少http请求,不要大面积使用
        // 组成的成分:0-9 a-z A-Z  + / = 64个字符
        let str = 'hello'
        // 把普通的字符串 转成 bata base 64 数据
        let str1 = window.btoa(str) // 编码
        console.log(`btoa编码:${str1}`)

        let str2 = window.atob(str1) // 解码
        console.log(`atob解码:${str2}`)

        let str3 = 'hello你好' // 有中文不能直接编码会报错
        // console.log(window.btoa(str3)) // 报错
        let uri = encodeURIComponent(str3) // 转成unicode 把中文转成unicode
        console.log(`转成unicode:${uri}`)
        console.log(`再结uri进行编码:${window.btoa(uri)}`)

        let data = 'aGVsbG8lRTQlQkQlQTAlRTUlQTUlQkQ=' // base 64
        let data1 = window.atob(data) // 解码 中文会转成uncode
        console.log(`这里是转成unicode码:${data1}`)

        // 使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。
        // 而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。这也正是可以对整个URI
        // 使用encodeURI(),而只能对附加在现有URI后面的字符串使用encodeURIComponent()的原因所在。
        // 一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URL进行编码.

        let data2 = decodeURIComponent(data1)
        console.log(`这里是unicode解码:${data2}`)

    </script>
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容