Encoding API - 提供了一种处理各种字符编码文本的机制
Encoding API(编码 API)提供了一种处理各种字符编码 文本的机制,包括传统的非 UTF-8 编码。
API 提供了四个接口:TextDecoder
、TextEncoder
、TextDecoderStream
和 TextEncoderStream
。
注意: 此特性在 Web Worker 中可用。
接口
Polyfill
- 一个 shim 允许在不支持它的浏览器中使用这个接口。
规范
规范 | 状态 | 备注 |
---|---|---|
Encoding | 现行的标准 | 初始定义。 |
浏览器兼容性
TextDecoder
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 38 | ≤79 | 19 181 | 不支持 | 25 | 10.1 |
TextDecoder() 构造函数 | 38 | ≤79 | 19 181 | 不支持 | 25 | 10.1 |
decode | 38 | ≤79 | 19 181 | 不支持 | 25 | 10.1 |
encoding | 38 | ≤79 | 19 181 | 不支持 | 25 | 10.1 |
fatal | 支持 | ≤79 | 支持 | 不支持 | 支持 | 10.1 |
ignoreBOM | 支持 | ≤79 | 支持 | 不支持 | 支持 | 10.1 |
在 Worker 中可用 | 38 | ≤79 | 20 | 不支持 | 25 | 10.1 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
TextDecoder() 构造函数 | 38 | 38 | 未知 | 19 181 | 未知 | 未知 | 10.3 |
decode | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
encoding | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
fatal | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 10.3 |
ignoreBOM | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 10.3 |
在 Worker 中可用 | 38 | 38 | 未知 | 20 | 未知 | 未知 | 10.3 |
1. 实现与规范版本稍有不同。
2. 从 util
模块导出,但不是全局可用。
TextEncoder
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 38 | 79 | 19 181 | 不支持 | 25 | 10.1 |
TextEncoder() 构造函数 | 533 38 — 534 | 793 | 485 38 — 486 19 — 387 181 | 不支持 | 25 | 10.1 |
encode | 38 | 79 | 19 181 | 不支持 | 25 | 10.1 |
encodeInto | 74 | 79 | 66 | 不支持 | 不支持 | 不支持 |
encoding | 38 | 79 | 19 181 | 不支持 | 25 | 10.1 |
在 Worker 中可用 | 38 | 79 | 20 | 不支持 | 25 | 10.1 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
TextEncoder() 构造函数 | 38 | 38 | 未知 | 485 38 — 486 19 — 387 181 | 未知 | 未知 | 10.3 |
encode | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
encodeInto | 74 | 74 | 未知 | 66 | 未知 | 不支持 | 不支持 |
encoding | 38 | 38 | 未知 | 19 181 | 未知 | 支持 | 10.3 |
在 Worker 中可用 | 38 | 38 | 未知 | 20 | 未知 | 未知 | 10.3 |
1. Firefox 18 实现了该规范的早期版本,与现有版本稍有不同。
2. 从 util
模块导出,但不是全局可用。
3. 不接受参数。仅支持 utf-8
编码。
4. 对于未知的编码类型,引发 RangeError
异常
5. 构造函数接受编码类型标签参数,但该值将被忽略。仅支持 utf-8
编码
6. 如果编码类型标签参数无效,则将引发 RangeError
异常。
7. 如果编码类型标签参数无效,则将引发 TypeError
异常。