This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The TextDecoder interface represents a decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.
Example
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)); // Привет, мир!
Constructor
TextDecoder()- Returns a newly constructed
TextDecoderthat will generate a code point stream with the decoding method specified in parameters.
Properties
The TextDecoder interface doesn't inherit any properties.
TextDecoder.encodingRead only- Is a
DOMStringcontaining the name of the decoder, that is a string describing the method theTextDecoderwill use. TextDecoder.fatalRead only- Is a
Booleanindicating whether the error mode is fatal. TextDecoder.ignoreBOMRead only- Is a
Booleanindicating whether the byte order marker is ignored.
Methods
The TextDecoder interface doesn't inherit any method.
TextDecoder.decode()- Returns a
DOMStringcontaining the text decoded with the method of the specificTextDecoderobject.
Specifications
| Specification | Status | Comment |
|---|---|---|
| Encoding The definition of 'TextDecoder' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | 38 | 19.0 (19.0) [1] | No support | 25 | 10.1 |
| Available in Web Workers | 38 | 20.0 (20.0) | No support | 25 | ? |
| Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | 38 | 38 | 19.0 (19.0) [1] | 1.0.1 (19.0) | No support | ? | No support |
| Available in Web Workers | 38 | 38 | 20.0 (20.0) | 1.0.1 (20.0) | No support | ? | No support |
[1] An earlier, and slightly different, version of the specification was implemented in Firefox 18.
See also
- The
TextEncoderinterface describing the inverse operation. StringView– a C-like representation of strings based on typed arrays- A shim allowing to use this interface in browsers that don't support it.
- Components.utils.importGlobalProperties

