TextDecoder

注意:此功能在 Web 工作线程 中可用。

TextDecoder 接口表示特定文本编码的解码器,例如 UTF-8ISO-8859-2KOI8-RGBK 等。解码器将字节流作为输入,并输出码点流。

构造函数

TextDecoder()

返回一个新构造的 TextDecoder,它将使用参数中指定的解码方法生成码点流。

实例属性

TextDecoder 接口不继承任何属性。

TextDecoder.encoding 只读

包含解码器名称的字符串,该字符串描述了 TextDecoder 将使用的解码方法。

TextDecoder.fatal 只读

一个 Boolean,指示错误模式是否为致命模式。

TextDecoder.ignoreBOM 只读

一个 Boolean,指示是否忽略 字节顺序标记

实例方法

TextDecoder 接口不继承任何方法.

TextDecoder.decode()

返回包含使用特定 TextDecoder 对象的方法解码的文本的字符串。

示例

使用类型化数组表示文本

此示例演示如何解码一个中日字符 表示幸运的中文汉字,它由五个不同的类型化数组表示:Uint8ArrayInt8ArrayUint16ArrayInt16ArrayInt32Array

js
let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8'

let u8arr = new Uint8Array([240, 160, 174, 183]);
let i8arr = new Int8Array([-16, -96, -82, -73]);
let u16arr = new Uint16Array([41200, 47022]);
let i16arr = new Int16Array([-24336, -18514]);
let i32arr = new Int32Array([-1213292304]);

console.log(utf8decoder.decode(u8arr));
console.log(utf8decoder.decode(i8arr));
console.log(utf8decoder.decode(u16arr));
console.log(utf8decoder.decode(i16arr));
console.log(utf8decoder.decode(i32arr));

处理非 UTF-8 文本

在此示例中,我们解码俄语文本“Привет, мир!”,意思是“你好,世界!”。在我们的 TextDecoder() 构造函数中,我们指定了 Windows-1251 字符编码,它适用于西里尔字母。

js
const win1251decoder = new TextDecoder("windows-1251");
const bytes = new Uint8Array([
  207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33,
]);
console.log(win1251decoder.decode(bytes)); // Привет, мир!

规范

规范
编码标准
# interface-textdecoder

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅