Un punto de código es una posición numérica en Unicode. Un valor escalar es cualquier punto salvo U+D800 a U+DFFF. UTF-16 usa unidades de 16 bits, así que un valor no siempre ocupa una posición JavaScript. Separar estas medidas evita recuentos engañosos y recorridos rotos.

Los valores BMP usan una unidad UTF-16

La mayoría de escrituras y símbolos comunes están en el Plano Multilingüe Básico. Un valor entre U+0000–U+D7FF o U+E000–U+FFFF usa una unidad UTF-16 con el mismo hexadecimal. D800–DFFF se reserva para pares, no caracteres aislados. UnicodeLens acepta valores BMP válidos, incluidos controles y uso privado, sin inventar nombres ni significado.

Los valores suplementarios forman un par sustituto

Para U+10000 o superior, UTF-16 resta 0x10000 y reparte bits entre un sustituto alto y uno bajo. 😀 es U+1F600, pero sus unidades son D83D DE00; JavaScript mide longitud dos. UnicodeLens muestra un valor, dos unidades UTF-16 y cuatro bytes UTF-8, nombrando cada medida sin llamar carácter a las tres.

Un sustituto aislado no es un valor escalar

Un sustituto alto sin uno bajo inmediato, o uno bajo sin su pareja, forma UTF-16 inválido. Algunas API lo reemplazan en silencio y ocultan el defecto. UnicodeLens se detiene en la posición de unidad UTF-16 y borra resultados antiguos. El modo de decodificación también rechaza U+D800–U+DFFF porque no pueden convertirse por sí solos en texto UTF-8.