Skip to content
brownie.tools

Character Counter

Count visible characters and UTF-8 bytes, with a letter, digit, space, and symbol breakdown.

No text entered.

Need readability scores and n-gram analysis? Word Counter

Runs locally in your browser. Nothing is uploaded or sent to a server.

Paste or type text to count user-perceived characters, including combined emoji as one character. Review the separate UTF-16 unit count when it differs, UTF-8 bytes, and the letter, digit, space, and symbol breakdown. Select a platform limit to check progress, or copy the statistics. All text analysis happens in the browser.

Updated

How many characters does your text contain?

Paste or type text to see its user-perceived character count, its count without whitespace, and its UTF-8 byte size. The Characters tile counts grapheme clusters through Intl.Segmenter, so an emoji with a skin tone or a letter with a combining accent counts as one. Counts update after you edit the text in your browser.

The table uses literal text without surrounding quotation marks or extra line breaks. Its measurements distinguish visible characters from storage units. UTF-16 units correspond to JavaScript string length, while UTF-8 bytes measure the encoded size. A single displayed symbol can therefore have different values across these columns.

Character, whitespace, and encoding counts for literal text examples
TextCharactersWithout whitespaceUTF-16 unitsUTF-8 bytes
Hello world!12111212
A B3233
é1112
😀1124
Café 👍🏽 costs 42€!17142027

What does the letter, digit, space, and symbol breakdown show?

The breakdown divides the inclusive character count into four groups that add up to the total. Letters cover any script, digits are decimal digits, and spaces include whitespace such as tabs and line breaks. Punctuation, other symbols, and emoji are grouped under symbols. Each grapheme is assigned to one group.

For Café 👍🏽 costs 42€!, the engine reports 9 letters, 2 digits, 3 spaces, and 3 symbols. Together they make 17 characters. The skin-tone emoji is one symbol; the euro sign and exclamation mark are the other two. No Spaces removes all whitespace and reports 14 characters for this example.

Why can UTF-16 units and UTF-8 bytes differ from characters?

UTF-16 units and UTF-8 bytes measure encoded text rather than the number of user-perceived characters. When JavaScript string length differs from the grapheme count, the Characters tile shows an extra annotation such as 20 UTF-16 units. JavaScript and many database limits use those units, so keep the destination's counting rule in view.

The UTF-8 tile uses TextEncoder to measure bytes. A precomposed é is one character, one UTF-16 unit, and two UTF-8 bytes. A plain letter followed by a combining accent remains one grapheme but can use more units. Check the byte tile for encoded size; do not infer bytes by multiplying the visible character count by a fixed amount.

How are words, sentences, paragraphs, and lines counted?

Words are nonempty tokens separated by whitespace, while sentences use punctuation matching and paragraphs are nonempty blocks separated by blank lines. Lines are separated by newline characters, and empty text has zero lines. These rules describe string structure rather than full linguistic analysis, so abbreviations and text without spaces can produce unexpected counts.

Unique words are lowercased, stripped of leading and trailing non-word characters, and deduplicated. Reading time uses 238 words per minute, and speaking time uses 150. These fixed estimates help compare drafts but do not measure your personal pace. Open Word Counter when reviewing word-focused text statistics.

How do platform limits and copied statistics work?

The limit selector compares the inclusive grapheme count with a built-in target and displays remaining or excess characters. Its progress turns amber at 80% and red above the limit. With text present, All Platform Limits also shows nine reference bars. These presets do not reproduce every destination's special handling of links or emoji.

Copy Stats copies character counts, the four-part breakdown, words, unique words, sentences, paragraphs, lines, and both time estimates. It omits UTF-8 bytes and the UTF-16 annotation. The input itself is capped at 1,000,000 UTF-16 units, and longer input is truncated. Use Clear to empty it, or Text Case Converter for case changes.

How to Use Character Counter

  1. Paste or type your text

    Enter text to update the statistics. The input is capped at 1,000,000 UTF-16 units, which is separate from the visible character count.

  2. Review characters and the breakdown

    Read Characters and No Spaces, then inspect letters, digits, spaces, and symbols. The Characters tile shows an additional UTF-16 unit count when it differs.

  3. Choose a platform limit

    Select a built-in limit to see progress and remaining or excess characters. Review UTF-8 bytes separately when a destination uses a byte limit.

  4. Copy the statistics

    Use Copy Stats to copy character counts, the breakdown, word and structure counts, and reading and speaking estimates. Clear empties the text input.

Frequently Asked Questions