«Carácter» es ambiguo en Unicode. Una persona ve un grafema, un protocolo puede contar puntos o bytes UTF-8 y JavaScript expone unidades UTF-16. WordCount muestra las cuatro medidas.
Los grafemas siguen el texto visible
Una letra y un acento combinado son dos puntos pero un grafema. Un emoji familiar une varios emoji con conectores invisibles y suele ser un grafema. Esta medida sirve para límites visibles, aunque el sistema receptor puede usar otra regla.
Los puntos identifican valores Unicode
Iterar Unicode cuenta puntos, no necesariamente lo que percibe una persona. Selectores, tonos de piel y conectores son puntos aunque formen un grupo visible. Usa esta medida solo cuando el contrato hable de puntos de código.
JavaScript length cuenta unidades UTF-16
La mayoría de letras usa una unidad UTF-16; un punto fuera del plano básico usa un par sustituto y cuenta dos. La longitud es exacta para JavaScript, pero no para caracteres visibles con emoji.