簡單粗暴的解釋就是為了資料的安全性。
我們一般使用window.btoa()
對原始資料進行編碼。
我們一般使用window.atob()
對編碼過後的資料進行編碼。
如果所示,上面說到的編碼/解碼方法並不支援中文
,因為它們只支援ascii 編碼
。
但是在實際開發中,前後端要傳遞的資料通常不可能只有英文或者數字的。那麼一旦我們要編碼或者說解碼的時候出現了中文字串怎麼辦呢?
由於btoa()
跟atob()
只支援ascii 編碼
,所以我們可以先將帶中文的字串轉碼成ascii 編碼
,這裡要用到兩種方法,encodeuricomponent
與decodeuricomponent
, 然後再進行編碼/解碼操作,這樣就可以解決不支援中文的問題。
decodeuricomponent(window.atob('juu0jui4jufejuu2jtk2jtg3'))
對資料進行解碼。
在某些情況下,用了上面的方法也會出現中文亂碼的情況,如github api獲取到的readme、qq**歌詞api解析出來的歌詞等。
如果出現了這種情況,我們可以使用unescape()
跟escape()
方法對做過解碼/編碼處理的資料進行utf-8
再解碼/編碼。語法如下:
window.btoa(unescape(encodeuricomponent(str))) //編碼
decodeuricomponent(escape(window.atob(str))) // 解碼
base64編碼 解碼
ps base64是一種資料編碼方式,目的是讓資料符合傳輸協議的要求,有些人誤用它進行資料加密 base64編碼 nsstring base64encodedstringwithstring nsstring string base64解碼 nsstring base64decodedstringw...
Base64編碼解碼
一.base64編碼由來 為什麼會有base64編碼呢?因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ascii碼的控制字元就不能通過郵件傳送。這樣用途就受到了很大的限制,比如二進位製流的每個位元組不可能全部是可見字元,所以就傳送不了。最好的方法就是在不改變傳統協議...
base64編碼和解碼,原生js
實際上,從ie10 瀏覽器開始,所有瀏覽器就原生提供了base64編碼解碼方法,不僅可以用於瀏覽器環境,service worker環境也可以使用。方法名就是atob和btoa,具體語法如下 1 base64解碼 語法為 瀏覽器中 var decodeddata window.atob encode...