javascript原生的api原本就支持,Base64,可是因爲以前的javascript侷限性,致使Base64基本中看不中用。當前html5標準正式化之際,Base64將有較大的轉型空間,對於Html5 Api中出現的如FileReader Api, 拖拽上傳,甚至是Canvas,Video截圖均可以實現。javascript
好了,前言說了一大堆,開發者須要重視:html
一.咱們來看看,在javascript中如何使用Base64轉碼html5
var str = 'javascript'; window.btoa(str) //轉碼結果 "amF2YXNjcmlwdA==" window.atob("amF2YXNjcmlwdA==") //解碼結果 "javascript"
二.對於轉碼來講,Base64轉碼的對象只能是字符串,所以來講,對於其餘數據還有這必定的侷限性,在此特別須要注意的是對Unicode轉碼。java
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.api
很明顯,這種方式是不行的,那麼如何讓他支持漢字呢,這就要使用window.encodeURIComponent和window.decodeURIComponentide
var str = "China,中國"; window.btoa(window.encodeURIComponent(str)) //"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=" window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=')) //"China,中國"