美文网首页
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