WorkerGlobalScope: btoa() 方法
注意:此功能仅在 Web 工作线程 中可用。
btoa()
方法是 WorkerGlobalScope
接口的一部分,它将一个二进制字符串(即每个字符都被视为一个二进制数据字节的字符串)创建为一个 Base64 编码的 ASCII 字符串。
您可以使用此方法对可能导致通信问题的數據进行编码,传输它,然后使用 WorkerGlobalScope.atob()
方法再次解码数据。例如,您可以对诸如 ASCII 值 0 到 31 的控制字符进行编码。
语法
js
btoa(stringToEncode)
参数
stringToEncode
-
要编码的二进制字符串。
返回值
包含 stringToEncode
的 Base64 表示形式的 ASCII 字符串。
异常
InvalidCharacterError
DOMException
-
该字符串包含一个不适合单个字节的字符。有关更多详细信息,请参见下面的“Unicode 字符串”。
示例
js
const encodedData = self.btoa("Hello, world"); // encode a string
const decodedData = self.atob(encodedData); // decode the string
Unicode 字符串
Base64 根据设计,期望以二进制数据作为其输入。就 JavaScript 字符串而言,这意味着每个字符的代码点仅占用一个字节的字符串。因此,如果您将包含占用超过一个字节的字符的字符串传递给 btoa()
,您将收到错误,因为这不被视为二进制数据。
js
const ok = "a";
console.log(ok.codePointAt(0).toString(16)); // 61: occupies < 1 byte
const notOK = "✓";
console.log(notOK.codePointAt(0).toString(16)); // 2713: occupies > 1 byte
console.log(self.btoa(ok)); // YQ==
console.log(self.btoa(notOK)); // error
有关在处理任意 Unicode 文本时如何解决此限制,请参阅 Base64 词汇表条目中的“Unicode 问题”。
规范
规范 |
---|
HTML 标准 # dom-btoa-dev |
浏览器兼容性
BCD 表仅在浏览器中加载
另请参阅
btoa
的填充程序 可在core-js
中找到data
URLWorkerGlobalScope.atob()
Window.btoa()
: 与之相同的方法,但在窗口范围内。- Base64