چرا شمارندههای کاراکتر قدیمی در یونیکد مدرن، ایموجیها و متنهای چند خطی شکست میخورند
ابزارهای وب نسل اول مانند شمارندههای کاراکتر قدیمی ساختهشده در اوایل دهه ۲۰۱۰ به ویژگی اولیه `String.prototype.length` در جاوا اسکریپت تکیه میکنند. از آنجا که جاوا اسکریپت به صورت داخلی رشتهها را با استفاده از واحدهای کد UTF-16 انکود میکند، هر کاراکتری خارج از صفحه چندزبانه پایه (BMP) — شامل ایموجیهای مدرن، نمادهای ریاضی و ایزوگرافهای نادر CJK — به عنوان یک جفت جایگزین از ۲ واحد کد نمایش داده میشود. علاوه بر این، ایموجیهای ترکیبی مانند آیکونهای خانواده یا اصلاحکنندههای رنگ پوست که از طریق پیوندهای صفر عرض (`U+200D`) به هم متصل شدهاند، میتوانند در شمارندههای قدیمی به عنوان ۵ تا ۱۱ کاراکتر ثبت شوند و باعث خوانش نادرست طول در شبکههای اجتماعی و پایگاه داده شوند.
Multinook با پیادهسازی استاندارد `Intl.Segmenter` متعلق به W3C و ECMA-402 در سطح خوشه گرافِم در کنار تحلیلگر جریان بایت `TextEncoder` با انکودینگ UTF-8، این نقص معماری را حل میکند. هر کاراکتر ادراکشده توسط کاربر با دقت ۱۰۰٪ شمارش میشود و در عین حال ردپای بایت خام UTF-8 و متریکهای واحد کد را برای مهندسان نرمافزار و نویسندگان فنی نمایان میکند.

