TextDecoder

Note:This feature is available inWeb Workers.

TheTextDecoderinterface represents a decoder for a specific text encoding, such asUTF-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 constructedTextDecoderthat will generate a code point stream with the decoding method specified in parameters.

Instance properties

TheTextDecoderinterface doesn't inherit any properties.

TextDecoder.encodingRead only

A string containing the name of the decoder, which is a string describing the method theTextDecoderwill use.

TextDecoder.fatalRead only

ABooleanindicating whether the error mode is fatal.

TextDecoder.ignoreBOMRead only

ABooleanindicating whether thebyte order markis ignored.

Instance methods

TheTextDecoderinterface doesn't inherit any methods.

TextDecoder.decode()

Returns a string containing the text decoded with the method of the specificTextDecoderobject.

Examples

Representing text with typed arrays

This example shows how to decode a Chinese/Japanese character Chinese character meaning lucky,as represented by five different typed arrays:Uint8Array,Int8Array,Uint16Array,Int16Array,andInt32Array.

js
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 ourTextDecoder()constructor, we specify the Windows-1251 character encoding, which is appropriate for Cyrillic script.

js
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 Standard
#interface-textdecoder

Browser compatibility

BCD tables only load in the browser

See also