Web/API/Encoding API

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The Encoding API provides a mechanism for handling text in various character encodings, including legacy non-UTF-8 encodings.

The API provides four interfaces: TextDecoder, TextEncoderTextDecoderStream and TextEncoderStream.

Interfaces

Tutorials & tools

  • A shim allowing to use this interface in browsers that don't support it.
  • StringView – a C-like representation of strings based on typed arrays.

Specifications

Specification Status Comment
Encoding Living Standard Initial definition.

Browser compatibility

TextDecoder

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
TextDecoder Chrome

Full support 38

Edge

Full support ≤79

Firefox Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

TextDecoder() constructor Chrome

Full support 38

Edge

Full support ≤79

Firefox Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

Opera Android

?

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

decode Chrome

Full support 38

Edge

Full support ≤79

Firefox Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

encoding Chrome

Full support 38

Edge

Full support ≤79

Firefox Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Partial support 18

Notes'

Notes' Implemented a slightly different version of the spec.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

fatal Chrome

Full support Yes

Edge

Full support ≤79

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support 10.1

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support Yes

ignoreBOM Chrome

Full support Yes

Edge

Full support ≤79

Firefox

Full support Yes

IE

No support No

Opera

Full support Yes

Safari

Full support 10.1

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support Yes

Available in workers Chrome

Full support 38

Edge

Full support ≤79

Firefox

Full support 20

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android

Full support 20

Opera Android

?

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
See implementation notes.'
See implementation notes.


TextEncoder

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

TextEncoder

Experimental'

Chrome

Full support 38

Edge

Full support 79

Firefox Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

TextEncoder() constructor

Experimental'

Chrome Full support 53

Notes'

Full support 53

Notes'

Notes' Does not accept parameters. Supports only utf-8 encoding. No support 38 — 53

Notes'

Notes' Throws RangeError exception for unknown encoding types.

Edge Full support 79

Notes'

Full support 79

Notes'

Notes' Does not accept parameters. Supports only utf-8 encoding.

Firefox Full support 48

Notes'

Full support 48

Notes'

Notes' The constructor accepts an encoding type label argument, but the value is ignored. Only utf-8 encoding is supported. No support 38 — 48

Notes'

Notes' If the encoding type label argument is invalid, then a RangeError exception is thrown. No support 19 — 38

Notes'

Notes' If the encoding type label argument is invalid, then a TypeError exception is thrown. Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 48

Notes'

Full support 48

Notes'

Notes' The constructor accepts an encoding type label argument, but the value is ignored. Only utf-8 encoding is supported. No support 38 — 48

Notes'

Notes' If the encoding type label argument is invalid, then a RangeError exception is thrown. No support 19 — 38

Notes'

Notes' If the encoding type label argument is invalid, then a TypeError exception is thrown. Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

Opera Android

?

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

encode

Experimental'

Chrome

Full support 38

Edge

Full support 79

Firefox Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

encodeInto

Experimental'

Chrome

Full support 74

Edge

Full support 79

Firefox

Full support 66

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

Full support 74

Chrome Android

Full support 74

Firefox Android

Full support 66

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

Full support 11.0

encoding

Experimental'

Chrome

Full support 38

Edge

Full support 79

Firefox Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android Full support 19


Full support 19


Full support 18

Notes'

Notes' Firefox 18 implemented an earlier and slightly different version of the specification.

Opera Android

Full support Yes

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

Available in workers

Experimental'

Chrome

Full support 38

Edge

Full support 79

Firefox

Full support 20

IE

No support No

Opera

Full support 25

Safari

Full support 10.1

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android

Full support 20

Opera Android

?

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 3.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
See implementation notes.'
See implementation notes.