Skip to content

Character Counter

Count characters with spaces, without spaces, and by Unicode grapheme, so an emoji or accented letter is measured the way a reader sees it rather than as several code units. A live meter tracks your text against presets for posts, meta descriptions, titles, and SMS, or any custom limit up to 100,000, turning amber as you approach it and red the moment you go over — all computed locally in your browser.

How Character Counter works

  1. Paste the text you need to fit inside a limit.

  2. Pick a preset limit or type your own.

  3. Watch the progress meter and the remaining-character readout.

  4. Trim until you are under budget, then copy.

When to use Character Counter

  • Fitting a post inside a 280-character limit, where the meter counts an emoji as the single character a reader sees rather than the several code units underneath.
  • Writing a meta description against the 160-character preset so the words that matter sit near the front before search engines truncate it.
  • Checking a page title against the 60-character guide so it is not cut off in a results listing.
  • Keeping a text message inside one 160-character SMS segment so it does not split into two and bill twice.
  • Setting a Custom limit for a form field, database column, or bio box and trimming until the “left” readout stops going red.
  • Reading the “characters without spaces” figure some journals and application forms ask for when they exclude spaces from a limit.
  • Confirming how much whitespace a block carries by comparing the with-spaces and no-spaces figures, whose difference is exactly the whitespace.
  • Diagnosing why a string that looks short overflows a strict byte or code-unit field, by comparing the raw character count against the grapheme count.

Examples

Counting an emoji against a limit

Input

Shipping today 👩‍💻🎉

Output

The raw Characters figure is higher than the grapheme total because 👩‍💻 is several code points joined into one cluster. The limit meter uses graphemes, so it reads the visible characters a reader sees rather than the larger code-unit count, and the Details panel notes that the two differ.

Tweet, meta, title, and SMS limits are all quoted in visible characters, which is why the meter measures graphemes.

A meta description under the 160 preset

Input

A local-first browser toolbox for counting, cleaning, and reshaping text — no upload, no sign-in.

Output

97 characters with spaces and 81 without, so 16 characters are whitespace. Against the 160 preset that leaves 63, keeping the meter in its default colour well short of the amber warning that appears at ninety percent.

Search engines actually measure pixel width, so treat 160 as a guide and keep the important words first.

A title over the 60-character guide

Input

The Complete Guide to Counting Words, Characters, and Sentences Online

Output

69 visible characters against the 60 preset, so the readout turns red and shows “9 over”, with a prompt to trim nine characters to fit. Cutting it to “The Complete Guide to Counting Words and Characters” brings it under.

The over-limit state fills the meter and switches it to the destructive colour so an overflow is obvious at a glance.

A custom database-column limit

Input

A product blurb checked against a Custom limit of 500.

Output

Choosing Custom and typing 500 switches the meter, the remaining readout, and the over-limit warning to that value. At 372 characters the panel reads 128 left; the field accepts any figure up to 100,000.

Custom is the preset to reach for whenever your limit is not one of the built-in social or SEO figures.

How Character Counter works under the hood

Two character totals are computed. Characters is the raw length of the text in UTF-16 code units — what most forms, APIs, and database columns mean by length. Characters without spaces removes every whitespace character first, so subtracting one from the other gives you the exact amount of whitespace, which the Details panel surfaces as the Spaces row.

Graphemes are counted separately, using the browser’s Unicode segmenter to group code points into the clusters a reader perceives as one character. A woman-technologist emoji is five UTF-16 code units and three code points but a single grapheme; the counter reports one, which is why the grapheme figure can sit well below the raw character count.

The limit meter tracks graphemes, not raw code units, deliberately. Tweet, meta-description, title, and SMS limits are all advertised in visible characters, so measuring code units would let a handful of emoji appear to blow a 280-character limit several times over. The presets cover Post (280), Meta (160), Title (60), and SMS (160), plus Custom.

The remaining figure is the limit minus the graphemes used. When it drops below zero the readout flips to “N over”, the meter fills completely and turns its destructive colour, and a line tells you how many visible characters to trim. Between ninety and one hundred percent of the limit it turns amber as an early warning.

Custom accepts any whole number from 1 to 100,000. Selecting it reveals a numeric field, and the entered value drives the meter, the remaining readout, and the over-limit warning identically to the built-in presets — so a bio box, a form field, or a column constraint is handled the same way as a tweet.

The Details panel rounds out the picture with Words, Sentences, Lines, and Spaces, computed from the same engine as the other counters. Lines are counted by line-feed breaks, so a soft-wrapped paragraph with no hard returns counts as one line.

Common mistakes

  • Assuming the raw Characters number is the one a platform enforces. Social and SEO limits are quoted in visible characters, so the meter’s grapheme count is the figure to watch; the raw count is for byte- or code-unit-bound fields such as some legacy database columns.
  • Pasting text with a trailing space or newline and wondering why the count is one higher than expected. Whitespace at the edges is real text and is included in the with-spaces figure; the without-spaces figure is what removes it.
  • Trusting the 60- and 160-character SEO presets as exact truncation points. Search engines truncate on pixel width, not character count, so a title full of wide letters like W and M can be cut sooner than a narrow one — the presets are guides, not guarantees.
  • Expecting an SMS to always fit 160 characters. That figure is for plain GSM-7 text; a single emoji or certain symbols can switch the message to a Unicode encoding where a segment holds only 70 characters, so verify against your provider for non-Latin content.
  • Reading a lower grapheme count than character count as a bug. It is expected whenever the text contains emoji or combining accents, and the panel explains it: those characters use more than one code unit, so the visible count is smaller.
  • Setting a Custom limit and forgetting to select the Custom preset first. The typed figure only drives the meter once Custom is the active preset; otherwise the meter stays on whichever social or SEO limit is selected.

Frequently asked questions

All tools

Search NeatKit

Jump to a tool, a page, or change the theme.