Character Counting for Bios, Captions and Forms

There is no single answer to "how many characters is this". Counting bytes, Unicode code points, UTF-16 units and grapheme clusters all give different numbers for the same text, and different platforms count different things. That is why your text can be 140 characters in one tool and rejected as too long by a field that claims a 150 limit.

Four ways to count the same string

Take the word "café". As UTF-8 bytes it is 5, because é needs two. As Unicode code points it is 4. As UTF-16 units it is also 4. As grapheme clusters — what a reader would call letters — it is 4. Now take a styled 𝐜𝐚𝐟𝐞: 4 code points but 8 UTF-16 units, because mathematical letters sit above U+FFFF and need two units each.

Why UTF-16 is the one that usually bites

Length checks written in JavaScript use the language's native string length, which counts UTF-16 units. Any character above U+FFFF therefore counts as two. This is why a seven-letter name in Unicode bold can be refused by a field that accepted the same seven letters plain — you did not add characters a reader can see, but you doubled the count the check performs.

Grapheme clusters and emoji

A grapheme cluster is what a person perceives as one character. Many emoji are built from several code points joined with U+200D ZERO WIDTH JOINER, so one visible emoji can be four or more code points. A counter that reports code points will say four; a reader will say one. Neither is wrong; they are answering different questions.

What this site's counter measures

Our character counter counts Unicode code points. It does not perform grapheme-cluster segmentation, so a multi-part emoji is reported as its component code points rather than as one character. That is stated here because a counter that quietly picks one definition and calls it "characters" is the source of most of this confusion.

Spaces, and counting without them

Spaces are ordinary characters and count. A "without spaces" figure exists because some writing guidelines specify it, not because spaces are somehow not characters. Line breaks count too, and a Windows-style line ending is two characters where a Unix one is one — enough to matter on a text pasted from a different system.

The only reliable check

Paste into the real field and watch its own counter. Every published limit is a claim about a specific field in a specific app version, and the field itself is the authority. Use a counter to get close, then confirm where it matters.

References

Related tools and guides

Last updated September 2026 · Editorial policy · How we verify Unicode claims