Base64 JS编码/解码

为何要编码

简朴粗犷的诠释就是为了数据的安全性。

编码/解码经常运用要领(仅针对Base64)

  • 编码

我们平常运用 window.btoa() 对原始数据举行编码。

  • 解码

我们平常运用 window.atob() 对编码事后的数据举行编码。

  • 注重点

《Base64 JS编码/解码》

假如所示,上面说到的编码/解码要领并不支撑中文,因为它们只支撑ASCII 编码

但是在现实开辟中,前后端要通报的数据一般不可能只要英文或许数字的。那末一旦我们要编码或许说解码的时刻涌现了中文字符串怎么办呢?

因为btoa()atob()只支撑ASCII 编码,所以我们能够先将带中文的字符串转码成ASCII 编码,这里要用到两种要领,encodeURIComponentdecodeURIComponent, 然后再举行编码/解码操纵,如许就能够处置惩罚不支撑中文的题目。

  • 转换 ASCII 编码

       window.btoa(encodeURIComponent('中文')) 举行转码以后在编码。

《Base64 JS编码/解码》

     decodeURIComponent(window.atob('JUU0JUI4JUFEJUU2JTk2JTg3'))
     对数据举行解码。

《Base64 JS编码/解码》

  • 最优计划

在某些状况下,用了上面的要领也会涌现中文乱码的状况,如GitHub API获取到的README、QQ音乐歌词API剖析出来的歌词等。

假如涌现了这类状况,我们能够运用 unescape()escape() 要领对做过解码/编码处置惩罚的数据举行utf-8再解码/编码。语法以下:

window.btoa(unescape(encodeURIComponent(str))) //编码

decodeURIComponent(escape(window.atob(str)))   // 解码
    原文作者:逸心丿
    原文地址: https://segmentfault.com/a/1190000016290403
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞