web api interface
TextDecoder
Available in workers
The TextDecoder interface represents a decoder for a specific text encoding, such as UTF-8, ISO-8859-2, or GBK. A decoder takes an array of bytes as input and returns a JavaScript string.
Constructor
TextDecoder()- : Creates and returns a new
TextDecoder.
- : Creates and returns a new
Instance properties
The TextDecoder interface doesn’t inherit any properties.
encodingRead only- : A string containing the name of the character encoding system that this
TextDecoderwill use.
- : A string containing the name of the character encoding system that this
fatalRead only- : A boolean indicating whether the error mode is fatal.
ignoreBOMRead only- : A boolean indicating whether the byte order mark is ignored.
Instance methods
The TextDecoder interface doesn’t inherit any methods.
decode()- : Decodes the given bytes into a JavaScript string and returns it.
Examples
Decoding UTF-8 text
This example shows how to decode the UTF-8 encoding of the character ”𠮷”.
<button id="decode">Decode</button>
<button id="reset">Reset</button>
<div id="output"></div>
div {
margin: 1rem 0;
}
const utf8decoder = new TextDecoder(); // default 'utf-8'
const encodedText = new Uint8Array([240, 160, 174, 183]);
const output = document.querySelector("#output");
const decodeButton = document.querySelector("#decode");
decodeButton.addEventListener("click", () => {
output.textContent = utf8decoder.decode(encodedText);
});
const resetButton = document.querySelector("#reset");
resetButton.addEventListener("click", () => {
window.location.reload();
});
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Decoding 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.
<button id="decode">Decode</button>
<button id="reset">Reset</button>
<div id="decoded"></div>
div {
margin: 1rem 0;
}
const win1251decoder = new TextDecoder("windows-1251");
const encodedText = new Uint8Array([
207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33,
]);
const decoded = document.querySelector("#decoded");
const decodeButton = document.querySelector("#decode");
decodeButton.addEventListener("click", () => {
decoded.textContent = win1251decoder.decode(encodedText);
});
const resetButton = document.querySelector("#reset");
resetButton.addEventListener("click", () => {
window.location.reload();
});
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.
See also
- The
TextEncoderinterface describing the inverse operation.