WorkerGlobalScope: btoa() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能仅在 Web Workers 中可用。

WorkerGlobalScope 接口的 btoa() 方法可以从一个二进制字符串(即字符串中的每个字符都被视为一个字节的二进制数据)创建一个 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(),您将收到一个错误,因为这不被视为二进制数据。

有关更多信息和解决方法,请参阅 Window.btoa()

规范

规范
HTML
# dom-btoa-dev

浏览器兼容性

另见