Character limits
About this word counter
This word counter and character counter reads the text in the box every time it changes and reports eight figures: words, characters, characters without spaces, letters, sentences, paragraphs, reading time and speaking time. It also measures the text against the X post limit, the SMS message limit and any limit you set. The counting runs in your browser with JavaScript, so your text is never sent anywhere.
How each count works
- Words: the text is trimmed and split on runs of whitespace (spaces, tabs, line breaks and non-breaking spaces). Each piece is one word, so
well-known,don't,3.14and a whole URL each count once, and two or three spaces in a row still separate only two words. - Characters: the length of the text as JavaScript measures it, in UTF-16 code units. Spaces, line breaks and punctuation all count.
- Characters (no spaces): the same count with every whitespace character removed.
- Letters: characters in the Unicode Letter category (
\p{L}), so é, ß, Ж and 字 count but digits, punctuation, spaces and emoji do not. Precomposed and decomposed accents both give one letter, because the separate accent mark is not a letter. - Sentences: each run of
.,!or?followed by whitespace or the end of the text ends a sentence. Text with no such mark counts as one sentence. - Paragraphs: every non-empty line. A single line break starts a new paragraph, the same as a blank line.
Edge cases, tested
Each row was run through the counter and checked against a Python implementation of the same rules:
| Text | Words | Characters | Letters | Sentences |
|---|---|---|---|---|
well-known fact | 2 | 15 | 13 | 1 |
word—word (no spaces) | 1 | 9 | 8 | 1 |
word — word (spaced dash) | 3 | 11 | 8 | 1 |
3.14 is pi | 3 | 10 | 4 | 1 |
Visit https://example.com today. | 3 | 32 | 25 | 1 |
one two three (extra spaces) | 3 | 16 | 11 | 1 |
See e.g. this list. | 4 | 19 | 13 | 2 |
Dr. Smith arrived. | 3 | 18 | 14 | 2 |
I ❤ 😀 you | 4 | 10 | 4 | 1 |
👍🏽 (skin-tone emoji) | 1 | 4 | 0 | 1 |
我喜欢读书。 (Chinese) | 1 | 6 | 5 | 1 |
Two rows show where simple rules go wrong. Abbreviations such as e.g. and Dr. end with a period followed by a space, so each adds a sentence; the counter cannot tell an abbreviation from the end of a sentence. And Chinese, Japanese and Thai do not put spaces between words, so a space-based count reports a whole sentence as one word. For those languages, use the character or letter count instead; the Chinese full stop 。 is also not treated as a sentence mark.
Emoji raise the character count because most take two UTF-16 code units, and a skin-tone modifier adds two more. That is why 👍🏽 shows 4 characters. Platforms that set their own limits count emoji differently, which is what the limit checks below are for. For more on code points, graphemes and bytes, read word count vs. character count.
Reading time and speaking time: words to minutes
Both times are words divided by a rate, rounded to the nearest second. Reading time defaults to 238 words per minute, the average silent reading rate for English non-fiction in Marc Brysbaert's 2019 meta-analysis of 190 studies and 18,573 participants (Journal of Memory and Language). The same study found 260 words per minute for fiction, which you can pick in the menu, along with a slower 200. Speaking time uses Brysbaert's average oral reading rate of 183 words per minute, which he notes agrees well with typical speaking rates. Treat it as about right for a script read at a normal pace; a slow, deliberate talk will run longer.
| Words | Silent, 238 wpm | Silent, 260 wpm | Aloud, 183 wpm |
|---|---|---|---|
| 250 | 1m 3s | 58s | 1m 22s |
| 500 | 2m 6s | 1m 55s | 2m 44s |
| 1,000 | 4m 12s | 3m 51s | 5m 28s |
| 1,500 | 6m 18s | 5m 46s | 8m 12s |
| 2,000 | 8m 24s | 7m 42s | 10m 56s |
To turn a word count into pages instead, see how many words is a page.
How the X and SMS limits are counted
X: according to X's developer documentation, a post can hold 280 characters, but Latin letters, punctuation and common symbols count 1 while emoji, CJK characters and other Unicode count 2, every URL counts 23, and the text is measured after NFC normalization. The tool applies the ranges in X's twitter-text v3 configuration. It recognizes links that start with http:// or https://; a bare example.com is counted as typed, so treat the X figure as a close estimate.
SMS: a single message carries 160 characters in the GSM 7-bit alphabet of 3GPP TS 23.038. The extension characters € [ ] { } \ ^ ~ | need an escape code, so each counts 2. One character outside the alphabet, such as an emoji or a curly quote, switches the whole message to UCS-2 with a 70-character limit. Longer messages are split into segments of 153 GSM characters or 67 UCS-2 characters, because each part carries a header that rejoins them, as Twilio explains.
Worked example
The sample text loaded in the box gives 42 words, 232 characters, 190 characters without spaces (it holds 40 spaces and 2 line breaks), 180 letters, 2 paragraphs, a reading time of 11s at 238 wpm and a speaking time of 14s. It reports 5 sentences although a reader sees 4, because e.g. is followed by a space. well-known counts as one word. Every character is in the GSM alphabet, so the SMS check shows 232 GSM-7 characters in 2 segments, and the X check shows 232 of 280.
Common mistakes
- Checking a platform limit against the plain character count. X weights emoji and links, and SMS switches to a 70-character limit for a single emoji. Use the matching limit check.
- Pasting text with hard line breaks. Text copied from a PDF often has a break at the end of every line, so each line becomes a paragraph. The Line Counter shows how many breaks you have, and the Text Cleaner can join them.
- Trusting the sentence count with abbreviations. Subtract one for each
e.g.,i.e.orDr.in the middle of a sentence. - Timing a speech with reading time. Reading aloud is slower than silent reading; use the speaking time.
To see which words you use most often rather than how many there are, use the Word Frequency Counter.
Frequently asked questions
It splits the text on spaces, tabs and line breaks and counts the pieces. Hyphenated words such as well-known, contractions such as don't, numbers such as 3.14 and full URLs each count as one word. A dash written with spaces on both sides counts as a word of its own, while a closed-up dash joins its neighbors into one word.
Characters counts everything in the text, including spaces, line breaks, digits, punctuation and emoji. Letters counts only characters in the Unicode Letter category, so accented letters, Cyrillic, Greek and Chinese characters count, but digits, spaces, punctuation and emoji do not.
Reading time is the word count divided by 238 words per minute, the average silent reading rate for English non-fiction found in Brysbaert's 2019 meta-analysis of 190 studies. You can switch to 260 words per minute for fiction or a slower 200. The result is rounded to the nearest second.
About 5 minutes 28 seconds at 183 words per minute, the average rate for reading aloud in Brysbaert's 2019 meta-analysis. The Speaking time figure uses this rate. A slow or heavily paused delivery takes longer, so allow some margin when timing a talk.
Not always. X counts most Latin letters and punctuation as 1 but emoji and CJK characters as 2, and every link counts as 23 characters. The X post check on this page applies those weights to links that start with http:// or https://, so use it rather than the plain character count when writing a post.
A single SMS holds 160 characters if every character is in the GSM 7-bit alphabet, or 70 if the message contains anything outside it, such as an emoji. Longer messages are sent in segments of 153 or 67 characters. The SMS check shows which encoding your text needs and how many segments it takes.
Not for words. Chinese and Japanese do not put spaces between words, so a space-based counter reports a whole sentence as one word. The character and letter counts still work, and character count is the usual way to measure length in those languages.
Yes. Each line break adds one to the Characters figure, the same as a space. The Characters (no spaces) figure leaves out all whitespace, including spaces, tabs and line breaks. Every non-empty line also counts as a paragraph.