Aller au contenu
uencoder

Surrogate Pair

Une paire de substitution est le mécanisme UTF-16 qui représente un point de code du plan supplémentaire (U+10000 à U+10FFFF) à l'aide de deux unités de code de 16 bits.

Objectif

Permet à UTF-16 de couvrir tout Unicode au-delà du BMP avec des unités de 16 bits, tout en gardant l'efficacité à 1 unité pour les caractères du BMP.

Mécanisme

Retirez 0x10000 au point de code supplémentaire C pour obtenir une valeur de 20 bits dans 0-0xFFFFF ; les 10 bits hauts plus 0xD800 donnent le substitut haut (0xD800-0xDBFF) et les 10 bits bas plus 0xDC00 le substitut bas (0xDC00-0xDFFF). Le décodage exécute le calcul inverse.

Cas d’usage

  • Traitement des chaînes avec emoji (p. ex., 😀 = U+1F600)
  • Longueur et itération des chaînes en JavaScript
  • Gestion des caractères larges dans les API Windows
  • Rendu des écritures anciennes et caractères rares

Exemples

  • entrée
    😀
    Output
    \uD83D\uDE00

    High surrogate D83D plus low surrogate DE00

Erreurs courantes

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

Termes associés

Outils associés

References