Le mot « caractère » est ambigu en Unicode. Une personne voit un graphème, un protocole peut compter points ou octets UTF-8 et JavaScript expose des unités UTF-16. WordCount montre les quatre mesures.
Les graphèmes suivent le texte visible
Une lettre et un accent combiné font deux points mais un graphème. Un emoji familial assemble plusieurs emoji avec des jointures invisibles et forme souvent un graphème. Cette mesure convient aux limites visibles, mais le système destinataire peut employer une autre règle.
Les points identifient les valeurs Unicode
L’itération Unicode compte les points, pas forcément ce que perçoit une personne. Sélecteurs, teintes de peau et jointures sont des points même s’ils forment un groupe visible. Utilisez ce compte seulement si le contrat parle de points de code.
JavaScript length compte les unités UTF-16
La plupart des lettres utilisent une unité UTF-16 ; un point hors du plan de base utilise une paire de substituts et en compte deux. La longueur est exacte pour JavaScript, pas pour les caractères visibles avec emoji.