TextDecoder
注意:此功能在 Web 工作线程 中可用。
TextDecoder
接口表示特定文本编码的解码器,例如 UTF-8
、ISO-8859-2
、KOI8-R
、GBK
等。解码器将字节流作为输入,并输出码点流。
构造函数
TextDecoder()
-
返回一个新构造的
TextDecoder
,它将使用参数中指定的解码方法生成码点流。
实例属性
TextDecoder
接口不继承任何属性。
TextDecoder.encoding
只读-
包含解码器名称的字符串,该字符串描述了
TextDecoder
将使用的解码方法。 TextDecoder.fatal
只读-
一个
Boolean
,指示错误模式是否为致命模式。 TextDecoder.ignoreBOM
只读
实例方法
TextDecoder
接口不继承任何方法.
TextDecoder.decode()
-
返回包含使用特定
TextDecoder
对象的方法解码的文本的字符串。
示例
使用类型化数组表示文本
此示例演示如何解码一个中日字符 ,它由五个不同的类型化数组表示:Uint8Array
、Int8Array
、Uint16Array
、Int16Array
和 Int32Array
。
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 表格仅在浏览器中加载
另请参阅
- 描述反向操作的
TextEncoder
接口。 - 一个 垫片,允许在不支持该接口的浏览器中使用该接口。
- Node.js 从 v11.0.0 版本开始支持全局导出