Skip to main content
Version: Next

TextDecoder

Decode bytes array into string text.

See

TextDecoder

Constructors

Constructor

new TextDecoder(encoding?, options?): TextDecoder;

Create a TextDecoder instance with specified encoding.

Per the WHATWG Encoding Standard, the encodings supported by the TextDecoder API are outlined in the tables below. For each encoding, one or more aliases may be used.

EncodingAliases
'ibm866''866', 'cp866', 'csibm866'
'iso-8859-2''csisolatin2', 'iso-ir-101', 'iso8859-2', 'iso88592', 'iso_8859-2', 'iso_8859-2:1987', 'l2', 'latin2'
'iso-8859-3''csisolatin3', 'iso-ir-109', 'iso8859-3', 'iso88593', 'iso_8859-3', 'iso_8859-3:1988', 'l3', 'latin3'
'iso-8859-4''csisolatin4', 'iso-ir-110', 'iso8859-4', 'iso88594', 'iso_8859-4', 'iso_8859-4:1988', 'l4', 'latin4'
'iso-8859-5''csisolatincyrillic', 'cyrillic', 'iso-ir-144', 'iso8859-5', 'iso88595', 'iso_8859-5', 'iso_8859-5:1988'
'iso-8859-6''arabic', 'asmo-708', 'csiso88596e', 'csiso88596i', 'csisolatinarabic', 'ecma-114', 'iso-8859-6-e', 'iso-8859-6-i', 'iso-ir-127', 'iso8859-6', 'iso88596', 'iso_8859-6', 'iso_8859-6:1987'
'iso-8859-7''csisolatingreek', 'ecma-118', 'elot_928', 'greek', 'greek8', 'iso-ir-126', 'iso8859-7', 'iso88597', 'iso_8859-7', 'iso_8859-7:1987', 'sun_eu_greek'
'iso-8859-8''csiso88598e', 'csisolatinhebrew', 'hebrew', 'iso-8859-8-e', 'iso-ir-138', 'iso8859-8', 'iso88598', 'iso_8859-8', 'iso_8859-8:1988', 'visual'
'iso-8859-8-i''csiso88598i', 'logical'
'iso-8859-10''csisolatin6', 'iso-ir-157', 'iso8859-10', 'iso885910', 'l6', 'latin6'
'iso-8859-13''iso8859-13', 'iso885913'
'iso-8859-14''iso8859-14', 'iso885914'
'iso-8859-15''csisolatin9', 'iso8859-15', 'iso885915', 'iso_8859-15', 'l9'
'koi8-r''cskoi8r', 'koi', 'koi8', 'koi8_r'
'koi8-u''koi8-ru'
'macintosh''csmacintosh', 'mac', 'x-mac-roman'
'windows-874''dos-874', 'iso-8859-11', 'iso8859-11', 'iso885911', 'tis-620'
'windows-1250''cp1250', 'x-cp1250'
'windows-1251''cp1251', 'x-cp1251'
'windows-1252''ansi_x3.4-1968', 'ascii', 'cp1252', 'cp819', 'csisolatin1', 'ibm819', 'iso-8859-1', 'iso-ir-100', 'iso8859-1', 'iso88591', 'iso_8859-1', 'iso_8859-1:1987', 'l1', 'latin1', 'us-ascii', 'x-cp1252'
'windows-1253''cp1253', 'x-cp1253'
'windows-1254''cp1254', 'csisolatin5', 'iso-8859-9', 'iso-ir-148', 'iso8859-9', 'iso88599', 'iso_8859-9', 'iso_8859-9:1989', 'l5', 'latin5', 'x-cp1254'
'windows-1255''cp1255', 'x-cp1255'
'windows-1256''cp1256', 'x-cp1256'
'windows-1257''cp1257', 'x-cp1257'
'windows-1258''cp1258', 'x-cp1258'
'x-mac-cyrillic''x-mac-ukrainian'
'gbk''chinese', 'csgb2312', 'csiso58gb231280', 'gb2312', 'gb_2312', 'gb_2312-80', 'iso-ir-58', 'x-gbk'
'gb18030'
'big5''big5-hkscs', 'cn-big5', 'csbig5', 'x-x-big5'
'euc-jp''cseucpkdfmtjapanese', 'x-euc-jp'
'iso-2022-jp''csiso2022jp'
'shift_jis''csshiftjis', 'ms932', 'ms_kanji', 'shift-jis', 'sjis', 'windows-31j', 'x-sjis'
'euc-kr''cseuckr', 'csksc56011987', 'iso-ir-149', 'korean', 'ks_c_5601-1987', 'ks_c_5601-1989', 'ksc5601', 'ksc_5601', 'windows-949'

Parameters

ParameterTypeDescription

encoding?

string

(Optional) Decoder encoding, by default is "utf-8".

options?

{ fatal?: boolean; ignoreBOM?: boolean; }

(Optional) Decode options, by default is {fatal: false, ignoreBOM: false}.

options.fatal?

boolean

options.ignoreBOM?

boolean

Returns

TextDecoder

Example

const bytes = new Uint8Array([
0xf0, 0x9d, 0x93, 0xbd,
0xf0, 0x9d, 0x93, 0xae,
0xf0, 0x9d, 0x94, 0x81,
0xf0, 0x9d, 0x93, 0xbd
]);
if (new TextDecoder().decode(bytes) !== "𝓽𝓮𝔁𝓽") {
Rsvim.cmd.echo("Failed to decode");
}

See

Throws

Throws TypeError if encoding is not a string or options is invalid. Throw RangeError if encoding is unknown or not support.

Accessors

encoding

Get Signature

get encoding(): string;

The encoding used by decoder.

Returns

string


fatal

Get Signature

get fatal(): boolean;

Whether throw TypeError when decoding error because the data is malformed.

Returns

boolean


ignoreBOM

Get Signature

get ignoreBOM(): boolean;

Whether ignore unicode "Byte-Order-Mark" (BOM) when decoding the data.

Returns

boolean

Methods

decode()

decode(input?, options?): string;

Decode a bytes array to string text. The bytes array can be a ArrayBuffer, TypedArray or DataView.

Parameters

ParameterTypeDescription

input?

any

(Optional) Bytes array, by default is new Uint8Array().

options?

{ stream?: boolean; }

(Optional) Decode options, by default is {stream: false}. When decode a stream data (e.g. read from tcp network) while reading it and cannot determine the end of bytes, should set stream option to true.

options.stream?

boolean

Returns

string

Decoded string text.

Example

// Single pass, non-stream
const str1 = new TextDecoder().decode(new Uint8Array([1,2,3,4]));

// Stream
const decoder = new TextDecoder();
let str2 = "";
str2 += decoder.decode(new Uint8Array([1]), {stream: true});
str2 += decoder.decode(new Uint8Array([2,3]), {stream: true});
str2 += decoder.decode(new Uint8Array([4]), {stream: true});
str2 += decoder.decode(undefined, {stream: false}); // Flush buffer and finish decoding.

See

TextDecoder

Throws

Throws TypeError if input is not a Uint8Array, or options is invalid, or the data is malformed and fatal option is set.