Visible symbols · letters · whitespace · encoded size

Character Counter

Check a character limit without pretending every system means the same thing by “character.” Compare what a person sees with Unicode letters, code points, code units, whitespace, and bytes a platform may actually measure.

Private browser tool

Enter the exact text you need to measure

Nothing uploaded

The large total uses visible grapheme clusters. The technical alternatives below update from the same local text.

0 typed units

Your text stays here. Counting happens in this browser tab. This utility has no text-submission endpoint, does not add text to the URL, and does not save a draft in browser storage.

Live result

0 characters

Visible grapheme clusters, including spaces and line breaks.

Unicode letters
0
Without whitespace
0
Unicode code points
0
UTF-16 units
0
UTF-8 bytes
0
Spaces
0
Tabs
0
Line breaks
0
Lines
0

Character limit

Check a field, caption, message, or metadata limit.

0 of 280 characters

280 characters remaining

Line and whitespace check

Useful when a limit counts spaces or line endings differently.

Other whitespace
0
Longest line
0 characters
Shortest line
0 characters
Counting method
Browser graphemes

The main result counts user-perceived characters, technically called grapheme clusters: a base letter plus its combining marks counts once, and a joined family emoji normally counts once. A separate Unicode-letter total counts code points in Unicode's Letter category; digits, emoji, and combining marks do not add to it. The report also exposes code points, JavaScript UTF-16 units, UTF-8 bytes, whitespace, lines, and a configurable limit so you can match the rule used by the destination system.

One word, several measures

What does “character” mean?

For plain English letters the totals usually agree. Accents, emoji, historic scripts, and some symbols reveal the difference. This page puts the measures side by side because the correct one depends on the limit you must satisfy.

MeasureWhat it representsWhen it matters
Visible character A Unicode grapheme cluster: the symbol a reader usually perceives as one item. Writing, captions, and limits described in human terms.
Unicode letter A code point in Unicode's Letter category (\p{L}). A base letter counts once; combining accents do not add another letter. Letter-only limits and text that mixes letters with digits, punctuation, or emoji.
Code point One numbered value in Unicode. Combining marks and joined emoji can use several. Unicode-aware APIs, validation rules, and technical debugging.
UTF-16 unit The storage units used by JavaScript strings. Some code points occupy two units. Older platform limits or a JavaScript string.length check.
UTF-8 byte The encoded data size. An ASCII character uses one byte; many other characters use more. Database fields, network payloads, files, and byte-bounded APIs.

A concrete Unicode example

Why an emoji can be one and many

The family emoji 👨‍👩‍👧‍👦 is presented as one visible symbol on supporting systems. Internally it is several person emoji joined by zero-width joiner code points, and each person uses surrogate-pair UTF-16 units. A visual counter can therefore say one while a code-unit limit says eleven.

Accented text can differ too. The letter é may be stored as one precomposed code point or as e followed by a combining accent. Both look like one grapheme. This tool reports the text as entered; it does not silently normalise one representation into the other. Both forms contribute one Unicode letter because the accent in the decomposed form is a combining mark, not a second letter.

Spaces and lines

What the whitespace report includes

SP

Spaces

The ordinary U+0020 space is shown separately because many familiar “without spaces” counters mean this character alone. This page's without whitespace total is stricter: it removes spaces, tabs, line breaks, and other Unicode whitespace.

Line breaks

The textarea exposes browser-normalised line feeds. A file saved on another operating system may encode each break with one byte or two, so a byte count after saving can differ from the in-browser draft.

NB

Other whitespace

Non-breaking spaces and other whitespace characters are counted here rather than as ordinary spaces. They can be visually hard to spot, which makes this breakdown useful when copied text behaves unexpectedly.

Segmentation support: modern browsers expose Unicode grapheme segmentation through Intl.Segmenter. If it is missing, the tool falls back to code points and labels that fallback in the report; complex joined emoji may then count as more than one visible character.

Questions, answered

Character counter FAQ

Does the character count include spaces?

Yes. The main visible-character result includes all grapheme clusters, including ordinary spaces and line breaks. “Without whitespace” removes every character JavaScript recognises as whitespace, and the breakdown shows ordinary spaces, tabs, line breaks, and other whitespace separately.

Does an emoji count as one character?

A single displayed emoji normally counts as one grapheme. Skin-tone modifiers, variation selectors, flags, and zero-width-joiner sequences can make that one grapheme contain several code points and UTF-16 units. The report shows those technical counts beside the visual one.

What counts as a letter?

The Unicode-letter total counts each code point whose Unicode General Category is Letter. Composed é and decomposed e plus a combining accent each contribute one letter. Digits, emoji, punctuation, joiners, and standalone combining marks contribute none.

Why is the byte count larger than the character count?

UTF-8 uses one byte for ASCII but typically two, three, or four bytes for other code points. Bytes measure encoded storage or transmission size; they are not meant to match the number of symbols a reader sees.

Is the text uploaded or stored?

No. All counts are calculated in this tab, with no request containing the text and no use of local or session storage. Clearing the box or closing the tab removes the only copy held by this feature.

Which total should I use for a platform limit?

Use the definition published by that platform. If it only says “characters,” the visible result is the most natural starting point, but paste the final copy into the destination because its validator may count links, line endings, or Unicode sequences differently.