23 Nisan 2019

TextDecoder and TextEncoder

What if the binary data is actually a string? For instance, we received a file with textual data.

The build-in TextDecoder object allows to read the value into an an actual JavaScript string, given the buffer and the encoding.

We first need to create it:

let decoder = new TextDecoder([label], [options]);
  • label – the encoding, utf-8 by default, but big5, windows-1251 and many other are also supported.
  • options – optional object:
    • fatal – boolean, if true then throw an exception for invalid (non-decodable) characters, otherwise (default) replace them with character \uFFFD.
    • ignoreBOM – boolean, if true then ignore BOM (an optional byte-order unicode mark), rarely needed.

…And then decode:

let str = decoder.decode([input], [options]);
  • inputBufferSource to decode.
  • options – optional object:
    • stream – true for decoding streams, when decoder