W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
WindowOrWorkerGlobalScope 接口的 btoa() 方法從一個(gè) String 對(duì)象中創(chuàng)建一個(gè) base-64 編碼的 ASCII 字符串,其中字符串中的每個(gè)字符都被視為一個(gè)二進(jìn)制數(shù)據(jù)字節(jié)。
注意:由于此函數(shù)將每個(gè)字符視為二進(jìn)制數(shù)據(jù)的一個(gè)字節(jié),而不管實(shí)際組成字符的字節(jié)數(shù)是多少,如果任何字符的代碼點(diǎn)超出范圍 0x00 至 0xFF ,則會(huì)引發(fā) InvalidCharacterError 異常。有關(guān)示例,請(qǐng)參閱本節(jié)的“Unicode 字符串”部分,演示如何編碼字符數(shù)超出 0x00 至 0xFF 范圍的字符串。
var encodedData = scope.btoa(stringToEncode);
stringToEncode
btoa() 方法返回一個(gè)包含 stringToEncode 的 Base64 表示形式的字符串。
以下是一個(gè) btoa() 方法的使用示例:
var encodedData = window.btoa('Hello, world'); // encode a string
var decodedData = window.atob(encodedData); // decode the string
您可以使用此方法對(duì)可能會(huì)導(dǎo)致通信問題的數(shù)據(jù)進(jìn)行編碼,將其傳輸,然后再使用該 atob() 方法對(duì)數(shù)據(jù)進(jìn)行解碼。例如,您可以對(duì)控制字符(如 ASCII 值0到 31)進(jìn)行編碼。
btoa() 方法對(duì)于用 JavaScript 實(shí)現(xiàn)的 XPCOM 組件也是可用的,盡管 Window 不是組件中的全局對(duì)象。
在大多數(shù)瀏覽器中,調(diào)用 btoa() Unicode 字符串將導(dǎo)致 InvalidCharacterError 異常。
一種選擇是轉(zhuǎn)義任何擴(kuò)展字符,以便您實(shí)際編碼的字符串是原始的 ASCII 表示??紤]一下 JohanSundstr?m 指出的這個(gè)例子:
// ucs-2 string to base64 encoded ascii
function utoa(str) {
return window.btoa(unescape(encodeURIComponent(str)));
}
// base64 encoded ascii to ucs-2 string
function atou(str) {
return decodeURIComponent(escape(window.atob(str)));
}
// Usage:
utoa('? à la mode'); // 4pyTIMOgIGxhIG1vZGU=
atou('4pyTIMOgIGxhIG1vZGU='); // "? à la mode"
utoa('I \u2661 Unicode!'); // SSDimaEgVW5pY29kZSE=
atou('SSDimaEgVW5pY29kZSE='); // "I ? Unicode!"
更好,更忠實(shí)和更便宜的解決方案是使用鍵入數(shù)組來進(jìn)行轉(zhuǎn)換。
規(guī)范 | 狀態(tài) | 評(píng)論 |
---|---|---|
HTML Living Standard 該規(guī)范中的'WindowOrWorkerGlobalScope.btoa()'的定義。 | Living Standard | 方法轉(zhuǎn)移到最新規(guī)范中的WindowOrWorkerGlobalScope mixin。 |
HTML Living Standard 該規(guī)范中'WindowBase64.btoa()'的定義。 | Living Standard | 自最新快照(Recommendation)以來沒有變化。 |
HTML 5.1 該規(guī)范中'WindowBase64.btoa()'的定義。 | Recommendation | HTML Living Standard 快照,沒有改變。 |
HTML5 該規(guī)范中'WindowBase64.btoa()'的定義。 | Recommendation | HTML Living Standard 快照。創(chuàng)建WindowBase64 (屬性之前的目標(biāo))。 |
我們正在將兼容性數(shù)據(jù)轉(zhuǎn)換為機(jī)器可讀的JSON格式。此兼容性表仍使用舊格式,因?yàn)槲覀兩形崔D(zhuǎn)換其包含的數(shù)據(jù)。 了解如何提供幫助!
特征 | Chrome | Edge | Firefox(Gecko) | Internet Explorer | Opera | Safari(WebKit) |
---|---|---|---|---|---|---|
基本支持 | 支持 | 支持 | 支持:1.0(1.7或更早版本)[1] 、52[2] | 支持:10 | 支持 | 支持 |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本支持 | 支持 | 支持 | 支持:1.0、52 | 不支持 | ? | 支持 |
注釋:
[1] btoa() 也可用于 JavaScript 中實(shí)現(xiàn)的 XPCOM 組件,即使 window 不是組件中的全局對(duì)象。
[2] btoa() 現(xiàn)在在 WindowOrWorkerGlobalScope mixin 上定義。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: