TextDecoder
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Note: This feature is available in Web Workers.
The TextDecoder
interface represents a decoder for a specific text encoding, such as UTF-8
, ISO-8859-2
, KOI8-R
, GBK
, etc. A decoder takes a stream of bytes as input and emits a stream of code points.
Constructor
TextDecoder()
Returns a newly constructed
TextDecoder
that will generate a code point stream with the decoding method specified in parameters.
Instance properties
The TextDecoder
interface doesn't inherit any properties.
TextDecoder.encoding
Read onlyA string containing the name of the decoder, which is a string describing the method the
TextDecoder
will use.TextDecoder.fatal
Read onlyA
Boolean
indicating whether the error mode is fatal.TextDecoder.ignoreBOM
Read onlyA
Boolean
indicating whether the byte order mark is ignored.
Instance methods
The TextDecoder
interface doesn't inherit any methods.
TextDecoder.decode()
Returns a string containing the text decoded with the method of the specific
TextDecoder
object.
Examples
Representing text with typed arrays
This example shows how to decode a Chinese/Japanese character , as represented by five different typed arrays:
Uint8Array
, Int8Array
, Uint16Array
, Int16Array
, and 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));
Handling non-UTF8 text
In this example, we decode the Russian text "Привет, мир!", which means "Hello, world." In our TextDecoder()
constructor, we specify the Windows-1251 character encoding, which is appropriate for Cyrillic script.
const win1251decoder = new TextDecoder("windows-1251"); const bytes = new Uint8Array([ 207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33, ]); console.log(win1251decoder.decode(bytes)); // Привет, мир!
Specifications
Specification |
---|
Encoding # interface-textdecoder |
Browser compatibility
See also
- The
TextEncoder
interface describing the inverse operation. - A shim allowing to use this interface in browsers that do not support it.
- Node.js supports global export from v11.0.0