Dlaczego starsze liczniki znaków zawodzą w przypadku nowoczesnego standardu Unicode, emoji i tekstów wieloskwryptowych
Pierwsze generacje narzędzi internetowych, takie jak starsze liczniki znaków zbudowane na początku lat 20. XXI wieku, opierają się na pierwotnej właściwości języka JavaScript `String.prototype.length`. Ponieważ JavaScript wewnętrznie koduje ciągi znaków przy użyciu jednostek kodu UTF-16, każdy znak spoza podstawowej płaszczyzny wielojęzycznej (BMP) – w tym nowoczesne emoji, symbole matematyczne i rzadkie ideogramy CJK – jest reprezentowany jako para zastępcza składająca się z 2 jednostek kodu. Co więcej, złożone emoji, takie jak ikony rodzin czy modyfikatory odcienia skóry połączone za pomocą łączników o zerowej szerokości (`U+200D`), mogą rejestrować się jako 5 do 11 znaków w przestarzałych licznikach, co prowadzi do niedokładnych odczytów długości w mediach społecznościowych i bazach danych.
Multinook rozwiązuje tę wadę architektoniczną, wdrażając standard W3C i ECMA-402 `Intl.Segmenter` na poziomie klastrów grafemowych wraz z analizatorem strumienia bajtów UTF-8 `TextEncoder`. Każdy postrzegany przez użytkownika znak jest liczony z 100% precyzją przy jednoczesnym uwzględnieniu surowego śladu bajtowego UTF-8 i metryk jednostek kodu dla inżynierów oprogramowania i autorów technicznych.

