Emoji counting (grapheme-aware)
Counting emoji correctly means counting whole, rendered symbols — not the raw characters a multi-part emoji is secretly built from.
What looks like a single emoji is often several Unicode characters glued together behind the scenes — a skin-tone modifier attached to a base gesture, or several people joined into a family. Counting naively by character breaks these apart and produces nonsense totals; counting by "grapheme cluster" (the technical term for a unit that renders as one visible symbol) keeps them whole. The other correction worth making: merging skin-tone variants of the same base emoji into one count, so 🫶 and 🫶🏻 are recognized as the same gesture rather than competing separately for a top-ten spot.
Example
Without merging skin-tone variants, 🫶 and 🫶🏻 might each place outside a top-ten list on their own, while the gesture they both represent would easily place first if counted together.
Frequently asked questions
Why would counting emoji "naively" even go wrong?+
Because a text-processing tool that isn’t specifically emoji-aware often sees a compound emoji as multiple separate unicode symbols and either double-counts it or renders it broken — the fix requires deliberately grouping by grapheme cluster, not assuming it happens automatically.
Does this affect flag emoji too?+
Yes — flags are also built from multiple underlying characters combined into one rendered symbol, and the same grapheme-aware counting keeps a flag as one emoji rather than two mismatched letters.