Text & Writing

Character Counter

Count text using the measure that fits the task. The main character count follows grapheme clusters, while separate totals show Unicode code points, JavaScript string length, and UTF-8 bytes. Compare any of those measures with your own limit.

Free online tool

Loading tool…

Counts update as you type. Input stays in this browser. Maximum input: 250,000 UTF-16 code units.

Characters0
Words0
Code points0
UTF-16 units0
UTF-8 bytes0
Without whitespace0
Lines0
Paragraphs0

“Characters” means grapheme clusters: roughly the characters you see. A joined emoji can be one cluster and several code points. Whitespace: 0 code points.

Reading time at 200 words per minute: 0 minutes.

All counts are calculated locally using browser Unicode segmentation and encoding APIs.

GET STARTED

How to use the Character Counter

  1. 01

    Type or paste text. Counts update as the input changes.

  2. 02

    Choose the text language to guide the browser’s word segmentation.

  3. 03

    If you have a limit, enter a positive whole number and select the measure the destination uses.

  4. 04

    Copy or download the count report. The report includes the totals rather than your original text.

Examples

A combining accent

The text e followed by U+0301 COMBINING ACUTE ACCENT has one grapheme cluster, two code points, two UTF-16 code units, and three UTF-8 bytes.

A joined family emoji

👨‍👩‍👧‍👦 is generally one grapheme cluster, seven code points, eleven UTF-16 code units, and twenty-five UTF-8 bytes.

Line endings affect some totals

A Windows CRLF line ending has two code points and two UTF-16 code units. It counts as one line break, as does LF.

Which character count should you use?

Grapheme clusters approximate the characters a reader perceives. Code points identify individual Unicode values. UTF-16 code units match JavaScript string length, while UTF-8 bytes help estimate encoded text size. Services can apply their own weighting rules, so a custom limit here does not reproduce any particular social platform’s rules.

Words, lines, and paragraphs

Word counts use Intl.Segmenter and include segments the browser marks as word-like. This supports languages that do not put spaces between every word. Empty input has zero lines; a trailing line break adds an empty final line. Paragraphs are nonblank blocks separated by one or more blank ordinary-text lines. Reading time assumes 200 words per minute and is only an estimate.

What to know

  • Segmentation follows the browser’s Intl.Segmenter implementation. Without it, characters fall back to code points and words to letter/number runs, with a visible notice.
  • Input is limited to 250,000 UTF-16 code units. Counts do not implement any service-specific weighted character rules.

Common questions

Does a space count as a character?

Yes. The main grapheme count includes spaces and line endings. The separate “Without whitespace” total removes grapheme clusters consisting entirely of Unicode whitespace.

Why does an emoji have more than one code point?

Flags, skin-tone combinations, family emoji, and other sequences can use several code points to form one displayed character. UTF-16 uses two code units for most individual emoji code points.

Why might another counter report a different word count?

Tools can use different definitions for contractions, hyphenated words, numbers, or scripts without spaces. This counter uses the browser’s language-aware word segmentation, which can vary with the browser’s Unicode data version.

Does the download contain my text?

No. Copy counts and Download counts produce a report of counts only. The input remains in local browser memory.

Sources & references