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\uDE00High 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
UTF-16
UTF-16 est la forme d'encodage Unicode de longueur variable utilisant 2 ou 4 octets par point de code : les caractères du BMP occupent une unité de code de 16 bits et ceux des plans supplémentaires, une paire de substitution (2 unités). GLOSSAIRE
Unicode
Unicode est la norme internationale de codage de caractères qui attribue un point de code unique (U+0000 à U+10FFFF) à chaque caractère de la quasi-totalité des écritures du monde, avec un espace de 1 114 112 points. GLOSSAIRE
Code Point
Un point de code est la valeur numérique que la norme Unicode attribue à chaque caractère (U+0000 à U+10FFFF), le numéro de position du caractère dans l'espace de codage. GLOSSAIRE
BOM
Le BOM (marque d'ordre des octets) est le caractère Unicode U+FEFF, placé au début d'un flux de texte pour indiquer la forme d'encodage et l'ordre des octets. GLOSSAIRE