javascript 使用btoa和atob來進行Base64轉碼和解碼


一個實用的代碼,可用了組合生成一些key值

 

javascript原生的api本來就支持,Base64,但是由於之前的javascript局限性,導致Base64基本中看不中用。當前html5標准正式化之際,Base64將有較大的轉型空間,對於Html5 Api中出現的如FileReader Api, 拖拽上傳,甚至是Canvas,Video截圖都可以實現。

好了,前言說了一大堆,開發者需要重視:

一.我們來看看,在javascript中如何使用Base64轉碼

var str = 'javascript';

window.btoa(str)
//轉碼結果 "amF2YXNjcmlwdA=="

window.atob("amF2YXNjcmlwdA==")
//解碼結果 "javascript"

二.對於轉碼來說,Base64轉碼的對象只能是字符串,因此來說,對於其他數據還有這一定的局限性,在此特別需要注意的是對Unicode轉碼。

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,中國"

 

轉自: http://www.codeweblog.com/javascript-使用btoa和atob來進行base64轉碼和解碼/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM