# JavaScript Runtime APIs - Encoding

## TextEncoder() constructor

`TextEncoder()` retorna um `TextEncoder` construído que gera uma transmissão de dados encodados com UTF-8.

### Sintaxe

`let encoder = new TextEncoder();`

### encode() method

O método `encode()` codifica um objeto `string`.

### Sintaxe

`b1 = encoder.encode(string);`

### Propriedade

`string` Uma USVString contendo o texto a ser codificado.

## TextDecoder() constructor

O `TextDecoder()` retorna um objeto `TextDecoder` construído que gera uma transmissão de dados *code-point*.

### Sintaxe

`let decoder = new TextDecoder(utfLabel, options);`

### decode() method

O método `decode()` decodifica o objeto usando o método previamente criado em `TextDecoder()`.

### Sintaxe

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

### Propriedades

`buffer` *Opcional*.

Pode ser um ArrayBuffer ou ArrayBufferView contendo o texto a ser decodificado.

`options` *Opcional*

É um dicionário TextDecodeOptions com a propriedade:

* stream: `boolean` indicando que cada dado adicional seguirá em chamadas subsequentes para `decode()`. Configurado para _true_ ao processar dados em grandes pedaços, e _false_ para o pedaço final ou se os dados não estiverem blocados. A configuração padrão é _false_.

```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)
    }
```

Para mais informações sobre [encode](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder) e [decode](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder), visite os links de MDN Web Docs.

---



---