Eski Karakter Sayaçları Neden Modern Unicode, Emojiler ve Çoklu Betik Metinlerinde Başarısız Oluyor?
2010'ların başlarında oluşturulan eski karakter sayaçları gibi birinci nesil web yardımcı programları, JavaScript'in ilkel `String.prototype.length` özelliğine dayanır. JavaScript dizeleri dahili olarak UTF-16 kod birimlerini kullanarak kodladığından, Temel Çok Dilli Düzlem (BMP) dışındaki tüm karakterler —modern emojiler, matematiksel semboller ve nadir CJK ideogramları dahil— 2 kod biriminden oluşan bir vekil çift (surrogate pair) olarak temsil edilir. Ek olarak, Sıfır Genişlikli Birleştiriciler (`U+200D`) aracılığıyla birleştirilen aile simgeleri veya ten rengi değiştiricileri gibi bileşik emojiler eski sayaçlarda 5 ila 11 karakter olarak kaydedilebilir, bu da yanlış sosyal medya ve veritabanı uzunluk okumalarına neden olur.
Multinook, W3C ve ECMA-402 `Intl.Segmenter` standardını grafem kümesi düzeyinde, bir UTF-8 `TextEncoder` bayt akışı analizörüyle birlikte uygulayarak bu mimari kusuru çözer. Kullanıcı tarafından algılanan her karakter %100 hassasiyetle sayılırken, aynı zamanda yazılım mühendisleri ve teknik yazarlar için ham UTF-8 bayt alanı ve kod birimi metrikleri ortaya çıkarılır.

