Aller au contenu

Encoding

TextEncoder, TextDecoder et transformations de texte en streaming.

Sur cette page

TextEncoder encode les chaînes en UTF-8. TextDecoder prend en charge l’UTF-8, l’UTF-16, les anciens encodages à un octet et les encodages CJK courants, à l’aide des libellés WHATWG.

const bytes = new TextEncoder().encode("Hello, мир! 🌍");
new TextDecoder().decode(bytes); // "Hello, мир! 🌍"

TextEncoder

MembreRésultat
encodingToujours "utf-8".
encode(input = "")Un nouveau Uint8Array.
encodeInto(source, destination){ read, written }, sans point de code partiel.

Les surrogates non appariés sont remplacés par U+FFFD.

TextDecoder

const decoder = new TextDecoder("latin1");
decoder.decode(new Uint8Array([0x80])); // "€"

Les libellés sont débarrassés des espaces et normalisés en casse. Des alias tels que ascii, iso-8859-1 et latin1 sélectionnent Windows-1252. Les libellés inconnus et le libellé replacement lèvent une RangeError.

Options :

  • fatal: true rejette une entrée malformée avec une TypeError ;
  • ignoreBOM contrôle le traitement d’un BOM initial ;
  • decode(input, { stream: true }) conserve une séquence incomplète pour l’appel suivant.
const decoder = new TextDecoder();
decoder.decode(new Uint8Array([0xc3]), { stream: true }); // ""
decoder.decode(new Uint8Array([0xa9])); // "é"

Streaming

TextEncoderStream convertit des fragments de chaîne en octets UTF-8. TextDecoderStream convertit des fragments d’octets en chaînes, en conservant les séquences multioctets partielles d’un fragment à l’autre.

Les constructeurs doivent être appelés avec new.

Reference

Status: Full · 14,178 of 14,266 suite tests pass (99.4%) · since 1.1.0

Exports

ExportKindStatusNotes
TextDecoderclassFullencoding, fatal, ignoreBOM, decode()
TextEncoderclassFullencoding, encode(), encodeInto()

Tests: wpt-wintertc encoding: 14,178 pass, 86 fail, 2 error, 329 skipped. Failing: encoding/encodeInto.any.js (65), encoding/textdecoder-streaming.any.js (16), encoding/streams/decode-bad-chunks.any.js (2), encoding/idlharness.any.js, encoding/single-byte-decoder.window.js, encoding/streams/decode-utf8.any.js, encoding/streams/realms.window.js, encoding/textdecoder-copy.any.js.

Cette page vous a-t-elle aidé ?