پرانے کردار کے کاؤنٹرز جدید یونیکوڈ، ایموجیز اور ملٹی اسکرپٹ متن پر کیوں ناکام ہو جاتے ہیں
پہلی نسل کی ویب افادیتیں جیسے کہ 2010 کی دہائی کے اوائل میں بنائے گئے پرانے کردار کے کاؤنٹرز JavaScript کی ابتدائی `String.prototype.length` پراپرٹی پر انحصار کرتے ہیں۔ چونکہ JavaScript اندرونی طور پر UTF-16 کوڈ یونٹس کا استعمال کرتے ہوئے اسٹرنگز کو انکوڈ کرتی ہے، اس لیے Basic Multilingual Plane (BMP) سے باہر کا کوئی بھی کردار — بشمول جدید ایموجیز، ریاضیاتی علامتیں، اور نایاب CJK نظریہ — 2 کوڈ یونٹس کے متبادل جوڑے کے طور پر ظاہر ہوتا ہے۔ مزید برآں، مرکب ایموجیز جیسے خاندانی شبیہیں یا جلد کے ٹون کے ترمیم کار جو Zero-Width Joiners (`U+200D`) کے ذریعے جڑے ہوتے ہیں، پرانے کاؤنٹرز میں 5 سے 11 حروف کے طور پر رجسٹر ہو سکتے ہیں، جس کی وجہ سے سوشل میڈیا اور ڈیٹا بیس کی لمبائی کی غلط پڑھائی ہوتی ہے۔
Multinook اس معماری کی خامی کو W3C اور ECMA-402 `Intl.Segmenter` کے معیار کو گریفیم کلسٹر کی سطح پر UTF-8 `TextEncoder` بائٹ اسٹریم تجزیہ کار کے ساتھ نافذ करके حل کرتا ہے۔ صارف کے ذریعے سمجھا جانے والا ہر کردار 100% درستگی کے ساتھ شمار کیا جاتا ہے جبکہ ساتھ ہی سافٹ ویئر انجینئرز اور تکنیکی مصنفین کے لیے خام UTF-8 بائٹ فٹ پرنٹ اور کوڈ یونٹ میٹرکس کو ظاہر کیا جاتا ہے۔

