Par sustituto

Encoding & Standards

Dos unidades de código UTF-16 (un sustituto alto U+D800–U+DBFF seguido de un sustituto bajo U+DC00–U+DFFF) que juntas representan un carácter superior a 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.

Términos relacionados

Plano Multilingüe Suplementario (SMP) Plano Multilingüe Suplementario (SMP)
Plano 1 de Unicode (U+10000 a U+1FFFF), donde se asigna la mayoría de los puntos de código emoji.
Plano Unicode Plano Unicode
Grupo de 65.536 puntos de código Unicode consecutivos. El Plano 0 es el Plano Multilingüe Básico (BMP); la mayoría de los emoji se encuentran en el Plano 1 (SMP).
Unidad de código Unidad de código
La combinación mínima de bits utilizada para codificar un carácter: 8 bits para UTF-8, 16 bits para UTF-16 y 32 bits para UTF-32.
UTF-16 UTF-16
Codificación Unicode de ancho variable que utiliza 2 o 4 bytes por carácter, empleada internamente por JavaScript, Java y Windows.

Herramientas relacionadas

🔢 Búsqueda Unicode Búsqueda Unicode
Ingresa un punto de código como U+1F600 y obtén el emoji, detalles de codificación, bytes UTF-8/16 y entidades HTML.
🔍 Analizador de secuencias Analizador de secuencias
Decodifica secuencias ZWJ, modificadores de tono de piel, secuencias de teclas y pares de banderas en sus componentes individuales.