The TextDecoder is a NodeJS interface that can for a specific text encoding, such as UTF-8, ISO-8859-2, KOI8-R, GBK, etc. decode it. It takes a stream of bytes as input and gives as output a stream of code points.
Import:
let var = new TextDecoder(encoding);
Parameter:
- encoding: It is a string data type that defines the encoding that TextDecoder object will use. By Default UTF-8 is used.
Constructor:
- TextDecoder( ): This constructor returns a new object which can generate a code point stream with the decoding format specified in the parameter.
Properties:
The TextDecoder does not inherit any property. The defined properties are:
- TextDecoder.encoding: The name of the encoding format to be used to decode.
- TextDecoder.fatal: It is a boolean value indicating whether the error code is fatal.
- TextDecoder.ignoreBOM: It is a boolean value indicating whether BOM(byte order mark) is ignored.
Functions:
- decode(input): A built-in function decode is used to decode the 'input' using the encoding defined earlier during the construction of the TextDecoder object.
Return Value: A string representing the decoded value for the given encoding format.
Example 1: Let us decode UTF-8 type encoded codepoints. As we know by default 'UTF-8' will be used hence we need not define encoding in the parameters of the decoder constructor. Create a file index.js and write the below code:
let decoder = new TextDecoder();
let uint8Array = new Uint8Array([72, 101, 108, 108, 111]);
console.log(decoder.decode(uint8Array));
Steps to run the application: Write the below command in the terminal to start the server:
node index.js
Output:
Hello
Example 2: To Decode non-UTF-8 encoded values, like A Russian Slogan "Привет, мир!" written in English as "Hello, World". We can use the 'windows-1251' encoding type to decode its code points. Create a file index.js and add the following code:
let decoder = new TextDecoder('windows-1251');
let data = new Uint8Array([207, 240, 232, 226, 229,
242, 44, 32, 236, 232, 240, 33]);
console.log(decoder.decode(data));
Steps to run the application: Write the below command in the terminal to start the server:
node index.js
Output:
Привет, мир!
Browser Compatibility:
| BROWSER | VERSION SUPPORTED |
| Chrome | 38 |
| Edge | 79 |
| Firefox | 19 |
| Internet Explorer | NOT SUPPORTED |
| Opera | 25 |
| Safari | 10.1 |
| Android WebView | 38 |
| Samsung Internet | 3.0 |
| Deno | 1.0 |
| NodeJS | 11.0.0 |
| Safari iOS | 10.3 |
Reference: https://nodejs.org/api/util.html#new-textdecoderencoding-options