Perché i contatori di caratteri legacy falliscono con Unicode moderno, emoji e testo multilingua
Le utility web di prima generazione, come i contatori di caratteri legacy creati all'inizio del 2010, si basano sulla proprietà primitiva `String.prototype.length` di JavaScript. Poiché JavaScript codifica internamente le stringhe utilizzando unità di codice UTF-16, qualsiasi carattere al di fuori del Basic Multilingual Plane (BMP) — incluse le emoji moderne, i simboli matematici e i rari ideogrammi CJK — viene rappresentato come una coppia surrogata di 2 unità di codice. Inoltre, le emoji composte, come le icone di famiglia o i modificatori del tono della pelle uniti tramite Zero-Width Joiner (`U+200D`), possono essere registrate come 5-11 caratteri nei contatori obsoleti, causando letture imprecise della lunghezza per i social media e i database.
Multinook risolve questo difetto architettonico implementando lo standard W3C e ECMA-402 `Intl.Segmenter` a livello di cluster di grafemi insieme a un analizzatore di flussi di byte UTF-8 `TextEncoder`. Ogni carattere percepito dall'utente viene conteggiato con una precisione del 100%, esponendo contemporaneamente l'impronta grezza in byte UTF-8 e le metriche delle unità di codice per ingegneri del software e scrittori tecnici.

