| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder | [Back] [Original] |
Get to know MDN better
This feature is well established and works across many devices and browser versions. Its 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, or GBK. A decoder takes an array of bytes as input and returns a JavaScript string.
TextDecoder()Creates and returns a new TextDecoder.
The TextDecoder interface doesn't inherit any properties.
TextDecoder.encoding Read onlyA string containing the name of the character encoding system that this 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.
The TextDecoder interface doesn't inherit any methods.
TextDecoder.decode()Decodes the given bytes into a JavaScript string and returns it.
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();
});
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();
});
| Specification |
|---|
| Encoding # interface-textdecoder |
TextEncoder interface describing the inverse operation.This page was last modified on Jun 28, 2025 by MDN contributors.
TextDecoderYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |