Skip to content

Count characters, words, lines, and UTF-8 bytes in a text locally.

Loading tool

About Text Statistics

Counts characters, characters without spaces, words, unique words, lines, sentences, paragraphs and UTF-8 bytes as you type. Character counts are Unicode-aware, so an emoji or accented letter counts as one character, and the UTF-16 length is shown when it differs. It also estimates reading time at an adjustable words-per-minute rate (230 by default) and speaking time at 130 wpm, and lists the ten most frequent words with an option to skip common stop words.

Common uses

  • Check a meta description, tweet or commit message against a length limit
  • Measure the UTF-8 byte size of text stored in a size-limited database column
  • Estimate reading time for a blog post or documentation page
  • Spot overused words in a draft

FAQ

Why does the character count differ from string.length in JavaScript?
JavaScript's length counts UTF-16 code units, so an emoji can count as 2 or more. This tool counts user-perceived characters (grapheme clusters) and shows the UTF-16 unit count separately when they differ.
How is reading time calculated?
Word count divided by reading speed. The default is 230 words per minute, a typical adult silent reading rate, and you can change it.
How are sentences counted?
Text is split after ., !, ? or an ellipsis followed by whitespace, and at blank lines. Abbreviations like 'e.g.' can therefore add extra sentences, so treat it as an approximation.