BYTETOOLS

Emoji Counter

Count emoji the way people see them. Handles ZWJ sequences, skin tones and flags as single characters, and lists every emoji with its code points.

Emoji found

Paste text above. Emoji are counted the way a person sees them, so 👩‍💻 counts as one even though it is three code points, and 🇯🇵 counts as one flag rather than two letters.

What is the Emoji Counter?

Counting emoji is harder than it looks. A single 👩‍💻 is three Unicode code points joined together, a flag like 🇯🇵 is two regional indicator letters, and a skin-toned 👍🏽 is a base emoji plus a modifier.

  • Counts emoji as grapheme clusters, not as raw code points
  • Handles ZWJ sequences, regional-indicator flags, keycaps and skin tones
  • Lists every distinct emoji with its frequency and exact code points
  • Reports how many characters and code points the whole text contains
  • Produces a copy of the text with every emoji removed
  • Runs fully in your browser; nothing is uploaded

How to use the Emoji Counter

  1. 1

    Paste your caption, chat log or document into the text box.

  2. 2

    Read the stat tiles for total emoji, distinct emoji, characters as a person sees them, and raw code points.

  3. 3

    Scan the table to see each emoji, how often it appears, its code points and what it is made of.

  4. 4

    Copy the emoji list, or copy the text with all emoji stripped out.

About the Emoji Counter

Counting emoji is harder than it looks. A single 👩‍💻 is three Unicode code points joined together, a flag like 🇯🇵 is two regional indicator letters, and a skin-toned 👍🏽 is a base emoji plus a modifier. Naive counting with string length gives an answer that matches nothing a human would recognise.

This counter splits your text into grapheme clusters — the units people actually perceive as characters — and identifies emoji using the Unicode Extended_Pictographic and Regional_Indicator properties. Each distinct emoji is listed with how often it appears, its exact code points, and whether it is a ZWJ sequence, a flag, a keycap or carries a skin-tone modifier.

It is useful for social media captions where platforms count characters differently, for checking accessibility in marketing copy, and for auditing user-generated content. Everything runs locally in your browser and nothing you paste is uploaded.

Frequently asked questions

How many characters is an emoji?

It depends on the emoji and on who is counting. A simple 😀 is one code point, 👩‍💻 is three, and 👨‍👩‍👧‍👦 is seven. To a person all of them are one character, which is how this tool counts them by default — while also showing you the raw code-point total.

Why does Twitter or Instagram count my emoji differently?

Because each platform picks its own unit. Some count code points, some count UTF-16 units, and some count grapheme clusters. This tool shows both the human count and the code-point count so you can work out which limit you are hitting.

What is a ZWJ emoji sequence?

It is several emoji glued together with the zero width joiner U+200D so they render as one image — 👩 plus U+200D plus 💻 becomes 👩‍💻. If the joiner is stripped, the sequence falls apart into separate emoji, which is why the tool flags them.

Does it count skin-tone modifiers separately?

No. A skin-toned emoji is counted as one emoji, and the table marks it as carrying a skin-tone modifier from the U+1F3FB to U+1F3FF range so you can see which ones are modified.

Is my text sent anywhere?

No. Counting happens entirely in your browser using the built-in Intl.Segmenter API, so your captions and chat logs never leave your device.

Related tools