How each number is counted
| Measure | How it is counted |
|---|---|
| Words | Runs of non-whitespace characters separated by spaces, tabs or line breaks. “well-known” is one word; a standalone “—” or “&” also counts as one. |
| Characters | What you see as one character counts as one, including spaces and line breaks. Emoji such as 👍🏽 or 👨👩👧 and letters with combining accents count as one. |
| Characters without spaces | Ignores spaces, tabs and line breaks. Often used for character limits in forms and translation quotes. |
| Sentences | An estimate: text is split after ., ! or ? followed by a space or the end of the text. Abbreviations like “e.g. ” or “Dr. ” are counted as sentence ends. |
| Paragraphs | Blocks of text separated by at least one blank line. |
| Reading time | Words ÷ 238. About 238 words per minute is a commonly cited average for adults reading non-fiction silently; real reading speed varies widely, so treat it as a rough estimate. |
| X (Twitter) | Characters weighted like X does: most Latin letters, digits and punctuation count as 1, while CJK characters and emoji count as 2, against a limit of 280. X counts every link as 23 regardless of length; this tool does not apply that rule. |
Characters vs. code points vs. bytes
“Length” means different things in different places. A database column or API may limit bytes, JavaScript's .length counts UTF-16 code units, and people count visible characters. The same text can give very different numbers:
| Text | Characters | Code points | JavaScript length | UTF-8 bytes |
|---|---|---|---|---|
| a | 1 | 1 | 1 | 1 |
| é | 1 | 1 | 1 | 2 |
| あ (Japanese) | 1 | 1 | 1 | 3 |
| 😀 | 1 | 1 | 2 | 4 |
| 👨👩👧 (family emoji) | 1 | 5 | 8 | 18 |
For example, MySQL's VARCHAR(255) limits characters (code points), but with the utf8mb4 charset each one may take up to 4 bytes, which matters for index size limits.
Frequently asked questions
Why is my count different from Microsoft Word or Google Docs?
Every program has its own rules for words and characters. This tool counts a word as any run of characters between spaces or line breaks, so a standalone dash or symbol counts as a word and a hyphenated word counts as one. Small differences are normal.
Does the word count work for Chinese, Japanese or Korean?
Only approximately. Words are counted by splitting on whitespace, and Chinese and Japanese are written without spaces, so a whole sentence may count as one word. Korean uses spaces, so its count is closer. For CJK text, the character count is the more useful number.
Is my text saved or uploaded?
No. All counting happens in your browser. The text is never sent to a server and disappears when you close the page.
How do I count characters correctly in code?
JavaScript's str.length counts UTF-16 code units, so most emoji count as 2 or more. To count characters the way people see them, use Intl.Segmenter with granularity: 'grapheme'. This tool uses the same method.