charset.school
Encoder en UTF-16

sandbox

Sandbox UTF-16 (encodage)

Convertis un code point Unicode en octets UTF-16, avec choix de l'endianness.

Accepte U+XXXX, 0xXX, décimal, ou un caractère unique.

Endianness
U+1F389🎉
4 octets

Décimal

127881

Hexadécimal

0x3C 0xD8 0x89 0xDF

Binaire

00111100
11011000
10001001
11011111

Étapes détaillées

  1. 01

    Choisir l'endianness

    L'octet de poids faible vient en premier dans chaque code unit (Little Endian).

    Little Endian (LE)
  2. 02

    Choisir le format UTF-16

    Plage U+10000U+10FFFF - au-delà du BMP, dans les plans supplémentaires (emojis, scripts historiques, CJK rare...). Encodé en paire de surrogates : 2 code units = 4 octets.

    2 code units · paire de surrogates
  3. 03

    Convertir en binaire

    On retire 0x10000 puis on garde les 20 bits restants.

    00001111001110001001
  4. 04

    Découper pour les surrogates

    On découpe les 20 bits en 2 paquets de 10 bits.
    Les 10 bits de gauche (poids forts) forment le high surrogate, les 10 bits de droite (poids faibles) forment le low surrogate.
    Chaque paquet de 10 bits représente un entier entre 0 et 1 023 (10 bits = 2¹⁰ = 1 024 valeurs). On l'ajoute à la base du surrogate : 0xD800 pour le high, 0xDC00 pour le low.

    0000111100 | 1110001001
  5. 05

    Convertir en hexadécimal

    Les 2 code units (high + low surrogate) donnent 4 octets, chaque code unit ordonné selon l'endianness.

    0x3C 0xD8 0x89 0xDF
charset.school

Outil pédagogique. Pas de tracking, pas de pub.

Développé par Florent Sorel