javascript使用btoa和atob來進(jìn)行Base64轉(zhuǎn)碼和解碼
javascript原生的api本來就支持,Base64,但是由于之前的javascript局限性,導(dǎo)致Base64基本中看不中用。當(dāng)前html5標(biāo)準(zhǔn)正式化之際,Base64將有較大的轉(zhuǎn)型空間,對于Html5 Api中出現(xiàn)的如FileReader Api, 拖拽上傳,甚至是Canvas,Video截圖都可以實現(xiàn)。
好了,前言說了一大堆,Base64轉(zhuǎn)碼和解碼有哪些方法:
一.我們來看看,在javascript中如何使用Base64轉(zhuǎn)碼
var str = 'javascript'; window.btoa(str) //轉(zhuǎn)碼結(jié)果 "amF2YXNjcmlwdA==" window.atob("amF2YXNjcmlwdA==") //解碼結(jié)果 "javascript"
二.對于轉(zhuǎn)碼來說,Base64轉(zhuǎn)碼的對象只能是字符串,因此來說,對于其他數(shù)據(jù)還有這一定的局限性,在此特別需要注意的是對Unicode轉(zhuǎn)碼。
var str = "China,中國" window.btoa(str)
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
很明顯,這種方式是不行的,那么如何讓他支持漢字呢,
這就要使用window.encodeURIComponent和window.decodeURIComponent
var str = "China,中國"; window.btoa(window.encodeURIComponent(str)) //"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=" window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=')) //"China,中國"
btoa與atob的使用方法就是這么簡單,大家可以嘗試一下。希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
關(guān)于Javascript閉包與應(yīng)用的詳解
這篇文章主要介紹了關(guān)于Javascript閉包與應(yīng)用的詳解,文中有非常詳細(xì)的代碼示例.對正在學(xué)習(xí)js的伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04Javascript中bind()方法綁定函數(shù)的使用與實現(xiàn)
這篇文章主要為大家介紹了Javascript中bind()方法綁定函數(shù)的使用與實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06JavaScript編程中實現(xiàn)對象封裝特性的實例講解
JavaScript可以在一定程度上以面向?qū)ο蠓绞竭M(jìn)行編程,而封裝是面向?qū)ο笾械囊粋€重要特性,本文就來分享阮一峰老師對JavaScript編程中實現(xiàn)對象封裝特性的實例講解2016-06-06Javascript基礎(chǔ)知識中關(guān)于內(nèi)置對象的知識
這篇文章主要介紹了Javascript基礎(chǔ)知識中關(guān)于內(nèi)置對象的相關(guān)知識的相關(guān)資料,需要的朋友可以參考下面小編薇大家?guī)淼木饰恼?/div> 2021-09-09最新評論