Почему устаревшие счетчики символов не справляются с современными стандартами Unicode, эмодзи и многоязычным текстом
Веб-утилиты первого поколения, такие как старые счетчики символов начала 2010-х годов, полагаются на примитивное свойство JavaScript `String.prototype.length`. Поскольку JavaScript внутренне кодирует строки с использованием кодовых единиц UTF-16, любой символ за пределами основной многоязычной плоскости (BMP) — включая современные эмодзи, математические символы и редкие иероглифы CJK — представляется в виде суррогатной пары из 2 кодовых единиц. Более того, составные эмодзи вроде семейных иконок или модификаторов оттенка кожи, объединенных через соединители нулевой ширины (`U+200D`), в устаревших счетчиках могут определяться как 5–11 символов, что приводит к неверным данным о длине в соцсетях и базах данных.
Multinook устраняет этот архитектурный изъян, внедряя стандарты W3C и ECMA-402 `Intl.Segmenter` на уровне кластеров графем вместе с анализатором потока байтов UTF-8 `TextEncoder`. Каждый воспринимаемый пользователем символ подсчитывается со 100-процентной точностью, одновременно предоставляя разработчикам программного обеспечения и техническим писателям метрики исходного объема в байтах UTF-8 и кодовых единицах.

