1. 面向开发者的 Web 技术
  2. Web API
  3. TextDecoder

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

TextDecoder

基线 广泛可用

自 2020年1月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

TextDecoder 接口表示一个文本解码器,一个解码器只支持一种特定文本编码,例如 UTF-8ISO-8859-2KOI8-RGBK,等等。解码器将字节流作为输入,并提供码位流作为输出。

备注: 此特性在 Web Worker 中可用。

构造函数

TextDecoder()

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

属性

TextDecoder 接口不继承任何属性。

TextDecoder.prototype.encoding 只读

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

TextDecoder.prototype.fatal 只读

一个布尔值,表示错误模式是否致命。

TextDecoder.prototype.ignoreBOM 只读

一个布尔值,表示是否忽略字节顺序标记(BOM)标记。

方法

TextDecoder 接口不继承任何方法

TextDecoder.prototype.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));

处理非 UTF8 文本

在此示例中,我们对俄语文本"Привет,мир!"进行编码,它的意思是("Hello, world.")。在我们的 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)); // Привет, мир!

规范

规范
Encoding
# interface-textdecoder

浏览器兼容性

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /