<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
网友评论