TextDecoder - Web API 接口参考 编辑
TextDecoder
接口表示一个文本解码器,一个解码器只支持一种特定文本编码,例如 utf-8
、iso-8859-2
、koi8
、cp1261
,gbk
等等。解码器将字节流作为输入,并提供代码点流作为输出。
例子
用类型化数组表示文本
本示例展示如何解码中文/日语字符,用五个不同的数组类型表示: 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并向我们发送请求。相关链接
TextEncoder
接口描述了逆操作。StringView
–基于类型数组的字符串的类似C的表示形式- 一个垫片,允许在不支持它的浏览器使用这个接口。
Components.utils.importGlobalProperties
- Node.js支持从v11.0.0全局导出
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论