Paire de substituts

Encoding & Standards

Deux unités de code UTF-16 (un substitut haut U+D800–U+DBFF suivi d'un substitut bas U+DC00–U+DFFF) qui représentent ensemble un caractère au-delà de U+FFFF.

Characters with code points above U+FFFF cannot fit in a single 16-bit value. UTF-16 solves this by encoding them as two 16-bit values called a surrogate pair. Since most emoji are above U+FFFF, surrogate pairs are extremely common with emoji.

For example, 😀 (U+1F600) becomes the surrogate pair 0xD83D 0xDE00 in UTF-16. The formula: high surrogate = 0xD800 + ((cp - 0x10000) >> 10), low surrogate = 0xDC00 + ((cp - 0x10000) & 0x3FF).

This is why JavaScript's `'😀'.charCodeAt(0)` returns 55357 (0xD83D) — it's returning the high surrogate, not the actual code point.

Termes associés

Plan multilingue supplémentaire (SMP) Plan multilingue supplémentaire (SMP)
Le plan 1 d'Unicode (U+10000 à U+1FFFF), où sont alloués la majorité des points de code emoji.
Plan Unicode Plan Unicode
Groupe de 65 536 points de code Unicode consécutifs. Le plan 0 est le plan multilingue de base (BMP) ; la plupart des emoji se trouvent dans le plan 1 …
Unité de code Unité de code
La combinaison minimale de bits utilisée pour encoder un caractère : 8 bits pour UTF-8, 16 bits pour UTF-16 et 32 bits pour UTF-32.
UTF-16 UTF-16
Encodage Unicode à largeur variable utilisant 2 ou 4 octets par caractère, employé en interne par JavaScript, Java et Windows.

Outils associés

🔢 Recherche Unicode Recherche Unicode
Saisissez un point de code comme U+1F600 et obtenez l'emoji, les détails d'encodage, les octets UTF-8/16 et les entités HTML.
🔍 Analyseur de séquences Analyseur de séquences
Décodez les séquences ZWJ, les modificateurs de teinte de peau, les séquences de touches et les paires de drapeaux en composants individuels.