This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.
The TextDecoder()
constructor returns a newly created TextDecoder
object for the encoding specified in parameter.
If the value for utfLabel is unknown, or is one of the two values leading to a 'replacement'
decoding algorithm ( "iso-2022-cn
" or "iso-2022-cn-ext
"), a DOMException
with the "TypeError"
value is thrown.
Syntax
decoder = new TextDecoder(utfLabel, options);
Parameters
- utfLabel Optional
- Is a
DOMString
, defaulting to"utf-8"
, containing the label of the encoder. Each label is associated with a specific encoding type:Possible values of utfLabel Encoding " unicode-1-1-utf-8
", "utf-8
", "utf8
"'utf-8'
" 866
", "cp866
", "csibm866
", "ibm866
"'ibm866'
" csisolatin2
", "iso-8859-2
", "iso-ir-101
", "iso8859-2
", "iso88592
", "iso_8859-2
", "iso_8859-2:1987
", "l2
", "latin2
"'iso-8859-2'
" csisolatin3
", "iso-8859-3
", "iso-ir-109
", "iso8859-3
", "iso88593
", "iso_8859-3
", "iso_8859-3:1988
", "l3
", "latin3
"'iso-8859-3'
" csisolatin4
", "iso-8859-4
", "iso-ir-110
", "iso8859-4
", "iso88594
", "iso_8859-4
", "iso_8859-4:1988
", "l4
", "latin4
"'iso-8859-4'
" csisolatincyrillic
", "cyrillic
", "iso-8859-5
", "iso-ir-144
", "iso88595
", "iso_8859-5
", "iso_8859-5:1988
"'iso-8859-5'
" arabic
", "asmo-708
", "csiso88596e
", "csiso88596i
", "csisolatinarabic
", "ecma-114
", "iso-8859-6
", "iso-8859-6-e
", "iso-8859-6-i
", "iso-ir-127
", "iso8859-6
", "iso88596
", "iso_8859-6
", "iso_8859-6:1987
"'iso-8859-6'
" csisolatingreek
", "ecma-118
", "elot_928
", "greek
", "greek8
", "iso-8859-7
", "iso-ir-126
", "iso8859-7
", "iso88597
", "iso_8859-7
", "iso_8859-7:1987
", "sun_eu_greek
"'iso-8859-7'
" csiso88598e
", "csisolatinhebrew
", "hebrew
", "iso-8859-8
", "iso-8859-8-e
", "iso-ir-138
", "iso8859-8
", "iso88598
", "iso_8859-8
", "iso_8859-8:1988
", "visual
"'iso-8859-8'
" csiso88598i
", "iso-8859-8-i
", "logical
"'iso-8859-8i'
" csisolatin6
", "iso-8859-10
", "iso-ir-157
", "iso8859-10
", "iso885910
", "l6
", "latin6
"'iso-8859-10'
" iso-8859-13
", "iso8859-13
", "iso885913
"'iso-8859-13'
" iso-8859-14
", "iso8859-14
", "iso885914
"'iso-8859-14'
" csisolatin9
", "iso-8859-15
", "iso8859-15
", "iso885915
", "l9
", "latin9
"'iso-8859-15'
" iso-8859-16
"'iso-8859-16'
" cskoi8r
", "koi
", "koi8
", "koi8-r
", "koi8_r
"'koi8-r'
" koi8-u
"'koi8-u'
" csmacintosh
", "mac
", "macintosh
", "x-mac-roman
"'macintosh'
" dos-874
", "iso-8859-11
", "iso8859-11
", "iso885911
", "tis-620
", "windows-874
"'windows-874'
" cp1250
", "windows-1250
", "x-cp1250
"'windows-1250'
" cp1251
", "windows-1251
", "x-cp1251
"'windows-1251'
" 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
", "windows-1252
", "x-cp1252
"'windows-1252'
" cp1253
", "windows-1253
", "x-cp1253
"'windows-1253'
" cp1254
", "csisolatin5
", "iso-8859-9
", "iso-ir-148
", "iso8859-9
", "iso88599
", "iso_8859-9
", "iso_8859-9:1989
", "l5
", "latin5
", "windows-1254
", "x-cp1254
"'windows-1254'
" cp1255
", "windows-1255
", "x-cp1255
"'windows-1255'
" cp1256
", "windows-1256
", "x-cp1256
"'windows-1256'
" cp1257
", "windows-1257
", "x-cp1257
"'windows-1257'
" cp1258
", "windows-1258
", "x-cp1258
"'windows-1258'
" x-mac-cyrillic
", "x-mac-ukrainian
"'x-mac-cyrillic'
" chinese
", "csgb2312
", "csiso58gb231280
", "gb2312
", "gb_2312
", "gb_2312-80
", "gbk
", "iso-ir-58
", "x-gbk
"'gbk'
" gb18030
"'gb18030'
" hz-gb-2312
"'hz-gb-2312'
" big5
", "big5-hkscs
", "cn-big5
", "csbig5
", "x-x-big5
"'big5'
" cseucpkdfmtjapanese
", "euc-jp
", "x-euc-jp
"'euc-jp'
" csiso2022jp
", "iso-2022-jp
"'iso-2022-jp'
" csshiftjis
", "ms_kanji
", "shift-jis
", "shift_jis
", "sjis
", "windows-31j
", "x-sjis
"'shift-jis'
" cseuckr
", "csksc56011987
", "euc-kr
", "iso-ir-149
", "korean
", "ks_c_5601-1987
", "ks_c_5601-1989
", "ksc5601
", "ksc_5601
", "windows-949
"'euc-kr'
" csiso2022kr
", "iso-2022-kr
"'iso-2022-kr'
" utf-16be
"'utf-16be'
" utf-16
", "utf-16le
"'utf-16le'
" x-user-defined
"'x-user-defined'
" iso-2022-cn
", "iso-2022-cn-ext
"'replacement'
- options Optional
- Is a
TextDecoderOptions
dictionary with the property:
fatal
- A
Boolean
flag indicating if theTextDecoder.decode()
method must throw aDOMException
with the"EncodingError"
value when an coding error is found. It defaults tofalse
.
Example
var textDecoder1 = new TextDecoder("iso-8859-2");
var textDecoder2 = new TextDecoder();
var textDecoder3 = new TextDecoder("csiso2022kr", {fatal: true}); // Allows EncodingError exception to be thrown.
var textDecoder4 = new TextDecoder("iso-2022-cn"); // Throw a TypeError exception.
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] | Not supported | 25 | ? |
Available in Web Workers | 38 | 20.0 (20.0) | Not supported | 25 | ? |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | Not supported | 38.0 | 19.0 (19.0) [1] | 1.0.1 (19.0) | Not supported | ? | Not supported | 38.0 |
Available in Web Workers | Not supported | 38.0 | 20.0 (20.0) | 1.0.1 (20.0) | Not supported | ? | Not supported | 38.0 |
[1] An earlier, and slightly different, version of the specification was implemented in Firefox 18.
See also
- The
TextDecoder
interface it belongs to.