美文网首页
btoa与atob

btoa与atob

作者: 0说 | 来源:发表于2018-10-06 00:27 被阅读0次
<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

相关文章

网友评论

      本文标题:btoa与atob

      本文链接:https://www.haomeiwen.com/subject/xtgwnftx.html