Saltar al contenido
uencoder

Surrogate Pair

Un par sustituto es el mecanismo de UTF-16 que representa un punto de código del plano suplementario (U+10000 a U+10FFFF) usando dos unidades de código de 16 bits.

Propósito

Permite que UTF-16 cubra todo el Unicode más allá del BMP con unidades de 16 bits, conservando la eficiencia de 1 unidad para los caracteres del BMP.

Mecanismo

Reste 0x10000 al punto de código suplementario C para obtener un valor de 20 bits en 0-0xFFFFF; los 10 bits altos más 0xD800 dan el sustituto alto (0xD800-0xDBFF) y los 10 bits bajos más 0xDC00 el sustituto bajo (0xDC00-0xDFFF). La decodificación ejecuta el cálculo inverso.

Casos de uso

  • Manejo de cadenas con emoji (p. ej., 😀 = U+1F600)
  • Longitud e iteración de cadenas en JavaScript
  • Manejo de caracteres anchos en las API de Windows
  • Renderizado de escrituras antiguas y caracteres raros

Ejemplos

  • entrada
    😀
    Output
    \uD83D\uDE00

    High surrogate D83D plus low surrogate DE00

Errores comunes

Splitting a surrogate pair by truncating mid-pair, creating lone surrogates
Iterate code points with for...of or Array.from

Términos relacionados

Herramientas relacionadas

References