首頁 > web前端 > js教程 > 主體

詳細介紹javascript使用btoa和atob進行Base64轉碼和解碼

黄舟
發布: 2017-03-21 14:28:17
原創
1888 人瀏覽過

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

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

好了,前言說了一大堆,Base64轉碼和解碼有哪些方法:

一.我們來看看,在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,中国"
登入後複製

以上是詳細介紹javascript使用btoa和atob進行Base64轉碼和解碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!