Par substituto

Encoding & Standards

Duas unidades de código UTF-16 (um substituto alto U+D800–U+DBFF seguido de um substituto baixo U+DC00–U+DFFF) que juntas representam um caractere acima 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.

Termos relacionados

Plano Multilíngue Suplementar (SMP) Plano Multilíngue Suplementar (SMP)
Plano 1 do Unicode (U+10000 a U+1FFFF), onde a maioria dos pontos de código emoji está alocada.
Plano Unicode Plano Unicode
Grupo de 65.536 pontos de código Unicode consecutivos. O Plano 0 é o Plano Multilíngue Básico (BMP); a maioria dos emoji está no Plano 1 (SMP).
Unidade de código Unidade de código
A combinação mínima de bits usada para codificar um caractere: 8 bits para UTF-8, 16 bits para UTF-16 e 32 bits para UTF-32.
UTF-16 UTF-16
Codificação Unicode de largura variável que usa 2 ou 4 bytes por caractere, usada internamente por JavaScript, Java e Windows.

Ferramentas relacionadas

🔢 Consulta Unicode Consulta Unicode
Digite um codepoint como U+1F600 e obtenha o emoji, detalhes de codificação, bytes UTF-8/16 e entidades HTML.
🔍 Analisador de sequências Analisador de sequências
Decodifique sequências ZWJ, modificadores de tom de pele, sequências de teclas e pares de bandeiras em componentes individuais.