TextDecoder - Web API 接口参考 编辑

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

例子

用类型化数组表示文本

本示例展示如何解码中文/日语字符,用五个不同的数组类型表示 Uint8Array, Int8Array, Uint16Array, Int16Array, Int32Array

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字符编码,适用于西里尔字母。

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

构造函数

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

属性

TextDecoder 接口不继承任何属性。

TextDecoder.prototype.encoding只读
DOMString所包含的解码器的名称,表示TextDecoder所使用的解码方法的字符串。
TextDecoder.prototype.fatal只读
布尔值,Boolean,是否显示致命错误。
TextDecoder.prototype.ignoreBOM 只读
布尔值,Boolean,是否忽略 BOM(byte order marker)标记。

方法

TextDecoder 接口不继承任何方法

TextDecoder.prototype.decode()
返回一个DOMString,其中包含使用特定 TextDecoder 对象的方法解码的文本

规范

规格状态评论
Encoding
TextDecoder
Living Standard初始定义。

浏览器兼容性

BCD tables only load in the browser

此页面上的兼容性表是根据结构化数据生成的。如果您想提供数据,请查看https://github.com/mdn/browser-compat-data并向我们​​发送请求。

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:64 次

字数:7483

最后编辑:6年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文