window.btoa
生活随笔
收集整理的這篇文章主要介紹了
window.btoa
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
將ascii字符串或二進制數據轉換成一個base64編碼過的字符串,該方法不能直接作用于Unicode字符串.
語法
var encodedData = window.btoa(stringToEncode);例子
var encodedData = window.btoa("Hello, world"); // 編碼 var decodedData = window.atob(encodedData); // 解碼備注
由于一些網絡通訊協議的限制,你必須使用該方法對原數據進行編碼后,才能進行發送.接收方使用相當于?window.atob?的方法對接受到的base64數據進行解碼,得到原數據.例如, 發送某些含有ASCII碼表中0到31之間的控制字符的數據.
在用javascript編寫XPCOM組件時,?btoa()方法也是可用的,雖然全局對象已經不是?window?了.
Unicode 字符串
在各瀏覽器中,使用?window.btoa?對Unicode字符串進行編碼都會觸發一個字符越界的異常.
先把Unicode字符串轉換為UTF-8編碼,可以解決這個問題,
function utf8_to_b64( str ) {return window.btoa(unescape(encodeURIComponent( str ))); }function b64_to_utf8( str ) {return decodeURIComponent(escape(window.atob( str ))); }// Usage: utf8_to_b64('? à la mode'); // "4pyTIMOgIGxhIG1vZGU=" b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // "? à la mode" //譯者注:在js引擎內部,encodeURIComponent(str)相當于escape(unicodeToUTF8(str)) //所以可以推導出unicodeToUTF8(str)等同于unescape(encodeURIComponent(str))規范
DOM Level 0 不屬于任何標準.
瀏覽器兼容性
| Basic support | (Yes) | (Yes) | 10+ | (Yes) | (Yes) |
總結
以上是生活随笔為你收集整理的window.btoa的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vueRouter-命名视图
- 下一篇: 51单片机系列——基础指令