Grapheme Cluster Counter
The only truly accurate real-character counter for modern Unicode text
A single visible character (like a family emoji, flag, or accented letter) can be made of many code points, invisible ZWJ joiners, skin-tone modifiers, and combining marks. This is why “Code points” and “UTF-16 units” are often higher than expected — and why only Grapheme clusters represent what humans actually see as one character. This tool follows the official Unicode Standard (UAX #29) using
Intl.Segmenter. 0
Grapheme Clusters
What you actually see
0
Code Points
0
UTF-16 Units
(JS string.length)
0
UTF-8 Bytes
About This Tool
The **Grapheme Cluster Counter** is the most accurate online tool for counting real, human-visible characters in Unicode text — including emojis, flags, skin tones, combining marks, and complex ZWJ sequences.
Most websites and programming languages use `string.length`, which counts UTF-16 code units — a method that has been broken for modern text since 2010. A single flag emoji returns 4, a family emoji returns 11–20, and an accented é returns 2. This tool fixes that.
We use the official **Unicode Standard Annex #29** via the browser’s built-in `Intl.Segmenter` API — the same engine used by Chrome, Firefox, Safari, and Edge for cursor movement, selection, and deletion. That means our count is identical to what your operating system and apps consider “one character”.
Unlike other counters, we show you *four* measurements side-by-side so you understand exactly what’s happening under the hood:
- **Grapheme clusters** → What humans see (correct for UI, validation, limits)
- **Code points** → Unicode’s atomic units
- **UTF-16 units** → What JavaScript, Java, C#, and .NET see
- **UTF-8 bytes** → What databases and network protocols see
This tool is 100% client-side. Your text never leaves your browser. No cookies, no analytics, no tracking — ever.
Built with love by AxelBase in 2025 for developers, writers, product managers, and anyone who has ever been confused by why `"".length === 20`.
How to Use
Using the Grapheme Cluster Counter is simple and instant:
- **Paste or type** any text into the box above — supports emojis, flags, skin tones, accents, Devanagari, Arabic, CJK, everything.
- Watch all four counters update **in real time** as you type.
- The **blue number** (grapheme clusters) is the correct “real character” count you should use for usernames, tweet limits, form validation, etc.
- Click **Copy Full Result** to get a formatted line with all four metrics.
- Share your exact text via the auto-generated link — it pre-fills the box for anyone you send it to.
Common Use Cases
- Checking real character limits on platforms that use grapheme clusters (Twitter/X, Mastodon, Discord)
- Validating username/display name length in apps
- Debugging why a string is longer than expected in JavaScript/Python/Java/etc.
- Teaching Unicode concepts to students and teammates
- Settling arguments about how many characters are in
**Pro tip:** Bookmark a shared link with your test case — it works forever and stays private.
No installation. No account. No data collection. Just accurate counting.