# JavaScript Runtime APIs - Encoding

## TextEncoder() constructor

`TextEncoder()` returns a built `TextEncoder` that generates a UTF-8-encoded data transmission.

### Syntax

```js
  let encoder = new TextEncoder();
```

### encode() method

The `encode()` method codes a `string` object.

### Syntax

```js
  b1 = encoder.encode(string);
```

### Properties

`string` A USVString containing the text to be coded.

## TextDecoder() constructor

`TextDecoder()` returns a `TextDecoder` object that generates a code-point data transmission.

### Syntax

```js
  let decoder = new TextDecoder(utfLabel, options);
```
### decode() method

`decode()` method decodes an object using a previously created method in `TextDecoder()`.

### Sintaxe

```js
  b1 = decoder.decode(buffer, options);
  b2 = decoder.decode(buffer);
  b3 = decoder.decode();
```

### Properties

`buffer` *Optional*

Either an ArrayBuffer or ArrayBufferView containing the text to be decoded.

`options` *Optional*

It's a TextDecodeOptions dictionary with the property:

* stream: `boolean` indicating that each additional data will follow in subsequent calls to `decode()`. Set to true if processing the data in lumps, and false for the final chunk or if the data is not blocked. The standard configuration is false.

### Example

```js
  addEventListener("fetch", (event) => {
    event.respondWith(handleRequest(event.request, event.console))
  })

  async function handleRequest(request, console_from_event) {
      let utf8decoder = new TextDecoder()
      let u8arr = new Uint8Array([240, 160, 174, 183]);
      let decoded_str = utf8decoder.decode(u8arr)
     
      console_from_event.log(decoded_str)

      return new Response(decoded_str)
}
```

For more information on [encode](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder) and [decode](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder), visit MDN Web Docs.