TextDecoder: decode() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

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

TextDecoder.decode() 方法返回一个字符串,其中包含从作为参数传入的缓冲区解码出的文本。

解码方法在当前的 TextDecoder 对象中定义。这包括了数据的预期编码方式,以及如何处理解码错误。

语法

js
decode()
decode(buffer)
decode(buffer, options)

参数

buffer 可选

一个 ArrayBuffer、一个 TypedArray 或一个 DataView 对象,包含要解码的编码文本。

options 可选

具有以下属性的对象:

stream

一个布尔标志,指示在后续调用 decode() 时是否还有更多数据。如果数据分块处理,则设置为 true;如果是最后一块或数据未分块,则设置为 false。默认为 false

异常

TypeError

当属性 TextDecoder.fataltrue 时,如果发生解码错误则抛出此异常。

返回值

字符串。

示例

此示例对欧元符号 € 进行编码和解码。

HTML

html
<p>Encoded value: <span id="encoded-value"></span></p>
<p>Decoded value: <span id="decoded-value"></span></p>

JavaScript

js
const encoder = new TextEncoder();
const array = encoder.encode("€"); // Uint8Array(3) [226, 130, 172]
document.getElementById("encoded-value").textContent = array;

const decoder = new TextDecoder();
const str = decoder.decode(array); // String "€"
document.getElementById("decoded-value").textContent = str;

结果

规范

规范
编码
# ref-for-dom-textdecoder-decode①

浏览器兼容性

另见