Window: btoa() 方法
btoa()
是 Window
接口的方法,它根据一个二进制字符串(即字符串中的每个字符都被视为一个字节的二进制数据)创建 Base64 编码的 ASCII 字符串。
您可以使用此方法对可能导致通信问题的数据进行编码,传输数据,然后使用 Window.atob()
方法再次解码数据。例如,您可以对控制字符(如 ASCII 值 0 到 31)进行编码。
语法
js
btoa(stringToEncode)
参数
stringToEncode
-
要编码的二进制字符串。
返回值
包含 stringToEncode
的 Base64 表示形式的 ASCII 字符串。
异常
InvalidCharacterError
DOMException
-
该字符串包含一个不适合单个字节的字符。有关更多详细信息,请参见下面的“Unicode 字符串”。
示例
js
const encodedData = window.btoa("Hello, world"); // encode a string
const decodedData = window.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(window.btoa(ok)); // YQ==
console.log(window.btoa(notOK)); // error
有关在处理任意 Unicode 文本时如何解决此限制,请参阅 Base64 词汇表条目中的“Unicode 问题”。
规范
规范 |
---|
HTML 标准 # dom-btoa-dev |
浏览器兼容性
BCD 表仅在启用了 JavaScript 的浏览器中加载。
另请参阅
btoa
的 polyfill 可在core-js
中找到。data
URLWorkerGlobalScope.btoa()
:相同的方法,但在工作线程作用域中。Window.atob()
- Base64