Encoding API - 提供了一种处理各种字符编码文本的机制

Encoding API(编码 API)提供了一种处理各种字符编码 文本的机制,包括传统的非 UTF-8 编码。

API 提供了四个接口:TextDecoderTextEncoderTextDecoderStreamTextEncoderStream

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

接口

Polyfill

  • 一个 shim 允许在不支持它的浏览器中使用这个接口。

规范

规范 状态 备注
Encoding 现行的标准 初始定义。

浏览器兼容性

TextDecoder

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持38≤79

19

181

不支持2510.1
TextDecoder() 构造函数38≤79

19

181

不支持2510.1
decode38≤79

19

181

不支持2510.1
encoding38≤79

19

181

不支持2510.1
fatal 支持≤79 支持 不支持 支持10.1
ignoreBOM 支持≤79 支持 不支持 支持10.1
在 Worker 中可用38≤7920 不支持2510.1

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持3838 未知

19

181

未知 支持10.3
TextDecoder() 构造函数3838 未知

19

181

未知 未知10.3
decode3838 未知

19

181

未知 支持10.3
encoding3838 未知

19

181

未知 支持10.3
fatal 支持 支持 未知 支持 未知 支持10.3
ignoreBOM 支持 支持 未知 支持 未知 支持10.3
在 Worker 中可用3838 未知20 未知 未知10.3

1. 实现与规范版本稍有不同。

2. 从 util 模块导出,但不是全局可用。

TextEncoder

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持3879

19

181

不支持2510.1
TextEncoder() 构造函数

533

38 — 534

793

485

38 — 486

19 — 387

181

不支持2510.1
encode3879

19

181

不支持2510.1
encodeInto747966 不支持 不支持 不支持
encoding3879

19

181

不支持2510.1
在 Worker 中可用387920 不支持2510.1

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持3838 未知

19

181

未知 支持10.3
TextEncoder() 构造函数3838 未知

485

38 — 486

19 — 387

181

未知 未知10.3
encode3838 未知

19

181

未知 支持10.3
encodeInto7474 未知66 未知 不支持 不支持
encoding3838 未知

19

181

未知 支持10.3
在 Worker 中可用3838 未知20 未知 未知10.3

1. Firefox 18 实现了该规范的早期版本,与现有版本稍有不同。

2. 从 util 模块导出,但不是全局可用。

3. 不接受参数。仅支持 utf-8 编码。

4. 对于未知的编码类型,引发 RangeError 异常

5. 构造函数接受编码类型标签参数,但该值将被忽略。仅支持 utf-8 编码

6. 如果编码类型标签参数无效,则将引发 RangeError 异常。

7. 如果编码类型标签参数无效,则将引发 TypeError 异常。