sandbox
Sandbox UTF-16 (décodage)
Convertis une suite d'octets UTF-16 en code point Unicode, en précisant l'endianness.
Décimal
127881
Octets
0x3C 0xD8 0x89 0xDF
Binaire
Étapes détaillées
-
01
Endianness précisée
On lit chaque code unit avec l'octet de poids faible en premier (
Little Endian).Little Endian (LE) -
02
Identifier le nombre de code units
4 octets = paire de surrogates pour un code point au-delà du BMP. Le code unit haut est dans
0xD800→0xDBFF, le code unit bas dans0xDC00→0xDFFF.2 code units · paire de surrogates -
03
Extraire les bits utiles des surrogates
Du high surrogate on retire
0xD800(10 bits hauts), du low surrogate on retire0xDC00(10 bits bas).0000111100 | 1110001001 -
04
Reconstituer le binaire
On concatène les 10 + 10 bits puis on ajoute
0x10000pour retrouver le code point.00001111001110001001 -
05
Convertir en code point
Le binaire vaut
127881en décimal, soitU+1F389en notation Unicode.U+1F389