Skip to content

words · characters · reading time

Word counter

The sentence “The quick brown fox jumps over the lazy dog.” has 9 words, 44 characters and 36 characters without spaces. Paste or type your own text to see its counts.

The counts update as you type and the text never leaves this tab. Reading and speaking times use the rates in the two number fields, which are assumptions you can change.

Scanned by NortonTM Safe Web

At a glance

Price
No charge
Account
None needed
Upload
Not applicable — the text never leaves your tab
Word rule
Unicode word boundaries (UAX #29) through Intl.Segmenter
Reading time
Words ÷ words per minute; 200 at the start, editable
Size limit
5,000,000 characters per text

Counts for sample texts and reading times

These tables come from the same code as the counter. UTF-16 units and UTF-8 bytes show why a character count and a size in bytes differ.

Counts for sample texts
TextWordsCharactersUTF-16 unitsUTF-8 bytes
Hello, world!2131313
well-known2101010
naïve1556
naïve1567
日本語のテキスト38824
3.14 and 1,0003141414
👨‍👩‍👧‍👦011125
Time to read or speak a text
WordsReading at 200 words per minuteSpeaking at 130 words per minute
1000:300:46
2501:151:55
5002:303:51
10005:007:42
200010:0015:23
500025:0038:28

How to count the words in a text

1

Paste or type the text

Put the text in the box. A sample is already there so you can see the counts at once; press Clear to start from an empty box. Texts of several megabytes work, up to 5,000,000 characters.

2

Read the counts

Words, characters, characters without spaces, sentences, paragraphs and lines update as you type. Under them you find the average word length, the longest word, and the size of the text in UTF-16 units and UTF-8 bytes.

3

Adjust the reading rate

Reading time is the number of words divided by the words per minute in the first number field (200 at the start). Speaking time uses the second field (130 at the start). Change either to match your own pace.

How the counts are defined

A word is a stretch of letters, digits or ideographs that Unicode word-boundary rules (UAX #29) treat as one unit, found with the browser's Intl.Segmenter. Spaces and punctuation are not words, and text in Japanese, Chinese or Thai, which has no spaces between words, is split by the browser's dictionary. A character is a grapheme cluster, the unit a reader sees as one symbol: a family emoji built from seven code points is one character, and so is a letter with a combining accent.

Different tools give different counts for the same text because they use different rules. A counter that splits on spaces reads “well-known” as one word, while the Unicode rules read it as two; “don't” stays one word in both. Numbers such as 3.14 count as one word. Sentences are found with the Unicode sentence rules, so an abbreviation followed by a capital letter can be read as a sentence end. A paragraph is a block of lines separated by a blank line. Reading time is words ÷ words per minute, rounded to the second; the rate is an assumption, not a measurement of your readers.

Word counter questions

How does the word counter decide what a word is?

It uses the Unicode word-boundary rules through the browser's Intl.Segmenter. A segment made of letters, digits or ideographs is a word; spaces and punctuation are not. “Hello, world!” has 2 words, “well-known” has 2, “don't” has 1 and “3.14 and 1,000” has 3.

Why does another tool show a different word count?

Most simple counters split the text on spaces. That gives 1 word for “well-known” where the Unicode rules give 2, counts a lone dash as a word, and finds no word boundaries in Japanese, Chinese or Thai, where words are not separated by spaces. Neither answer is wrong; they follow different definitions.

How is reading time calculated?

Reading time is the word count divided by the words per minute in the first number field, shown as minutes and seconds. At 200 words per minute, 1,000 words take 5:00; at 250 words per minute they take 4:00. The rate is an assumption you can change, because people read at very different speeds.

What is the difference between characters, UTF-16 units and UTF-8 bytes?

Characters are what a reader sees as one symbol. UTF-16 units are the length JavaScript reports for a string, and UTF-8 bytes are the size of the text when saved as a UTF-8 file. A family emoji is 1 character, 11 UTF-16 units and 25 UTF-8 bytes; the letter “é” is 1 character and 2 UTF-8 bytes.

Does it count Japanese, Chinese or Thai text correctly?

It counts words wherever your browser can segment the language: “日本語のテキスト” gives 3 words, 8 characters and 24 UTF-8 bytes. Segmentation depends on the dictionary built into the browser, so two browsers can differ slightly on rare words. The character count does not depend on it.

Is my text uploaded anywhere?

No. The counting runs in your browser tab and the text is never sent to a server. With the page already loaded it also works offline. Closing the tab discards the text.