Skip to content
Input
Text
Unicode
17.0
Runtime
Browser

Count user-perceived Unicode grapheme clusters

Segment text into pinned Unicode 17 extended grapheme clusters and compare them with code-point counts.

Local processingNo sign-upNo fetch or upload

Input

Enter text containing marks, flags, or emoji sequences.

Local

Grapheme cluster report

Submit the example or replace it with your own text. The result appears here without a network request.

What this tool proves

Explicit Unicode interpretation

A user-perceived character may contain multiple code points: an accent sequence, flag pair, emoji modifier, or ZWJ composition. UTF-16 length is a different measurement again.

Grapheme clusters count editing units, not bytes or scalar values

A user-perceived character may contain multiple code points: an accent sequence, flag pair, emoji modifier, or ZWJ composition. UTF-16 length is a different measurement again.

The segmenter applies Unicode grapheme break properties, Hangul rules, regional-indicator pairing, emoji ZWJ handling, and Indic conjunct handling from versioned data.

Unicode text stays scalar, private, and bounded

Every operation rejects lone UTF-16 surrogates before processing. Inputs are capped at 256 KiB, report operations at 20,000 code points, and output at 1 MiB.

The work starts only after submission and stays in the current browser tab. Tool Swim does not upload text, call the developer API, retain results, or save presets.

Primary references

Questions and answers

Related Unicode tools