Word & Character Counter
Type, paste or import text to count words and characters as you go. Your text stays on your device.
- 0
- 0
- 0
How to count words and characters
Add text
Type or paste plain text, or import a local .txt file.
Read the counts
Words, characters and the other counts update as you type.
Copy or download
Copy the text, or download it as a .txt file.
Adding and saving text
Type or paste plain text into the editor, or import a local UTF-8 .txt file up to the size limit below.
- Import. Importing a file replaces the current text. Undo brings the previous text back.
- Pasting. The clipboard is never read. Paste with Ctrl+V (Cmd+V on a Mac).
- Clear, Undo and Load example. Clear empties the editor. Undo brings the text back, also after Import or Load example replaced it. Load example fills the editor with made-up text.
- Copy text and Download .txt. Copy text copies the text in the editor. Download .txt saves it as a UTF-8 text file.
What is counted
Words, Characters and Characters excluding whitespace are the main counts. Sentences, Paragraphs, Lines, Reading time and Size are shown beside them.
- Characters. Counts what a reader sees as one character (a grapheme cluster), using the browser’s built-in text segmentation (Intl.Segmenter). A family or skin-tone emoji, a flag, or a letter with combining accents counts as one. Spaces, tabs and line breaks are included, and a Windows line break (CRLF) counts as one character, like LF. This is not the same as JavaScript string length or bytes.
- If the browser has no Intl.Segmenter. Unicode code points are counted instead, so some emoji and accented letters count as more than one. The page says so when that happens.
- Characters excluding whitespace. The same count, skipping every whitespace character: spaces, tabs, line breaks, non-breaking spaces and other Unicode spaces.
- Words. Word-like segments that contain letters or numbers, from the browser’s language-aware word segmentation. Numbers such as 2024 or 3.5 count as words; punctuation does not. Results can differ by browser and language. Contractions and hyphenated words may count as one word or two.
- Chinese, Japanese, Thai. These languages do not use spaces between words, so the browser’s dictionary decides the word boundaries. Without Intl.Segmenter, words are runs of letters, marks and digits joined by an apostrophe, hyphen or full stop, which undercounts languages written without spaces. Counting words is not perfect for every language.
- Sentences (approximate). Uses the browser’s sentence segmentation and counts sentences that contain a letter or digit. Abbreviations such as “e.g.” or missing punctuation can split or merge sentences.
- Paragraphs. Blocks of non-blank lines separated by one or more blank lines. A line with only spaces counts as blank.
- Lines. Logical lines, not how the text wraps on screen. CRLF, LF and CR each count as one line break. Empty text has 0 lines. Any text has the number of line breaks plus 1, so a line break at the very end starts a new empty line and adds 1, as most editors show it.
- Reading time (estimate). Words divided by 200 words per minute, rounded, and “Under 1 minute” for short text. It is an estimate, not a measurement; reading speed varies.
- Size. The UTF-8 bytes of the text as it would be downloaded. An ASCII letter is 1 byte, é is 2, most CJK characters are 3, and many emoji are 4. Line breaks are stored as LF (1 byte each), as browsers store them in a text box, so an imported Windows file’s CRLF line breaks become LF.
Character goal
Optionally enter a positive whole number up to 1,000,000. The tool shows how many characters are left, or how many over, using the same Characters (including spaces) count. Text is never cut.
Social sites and forms have their own counting rules, and some count links, emoji or line breaks differently. The goal is a guide, not a match for any particular site.
Limits and speed
- 2 MB
- 20,000
- 100,000
- 1,000,000
Counts update as you type. For texts over 20,000 characters they update after a short pause (250 ms), and texts over 100,000 characters are counted in a background thread (a Web Worker) so typing is not blocked. Above 2 MB, counting pauses with a message.
Right-to-left and mixed-direction text is supported: the editor takes its direction from the first letter of the text. Text is shown as plain text, never as HTML.
What happens to your text
Everything runs in your browser. Your text is not uploaded and is not sent to any server. It is not saved in the browser and not put in the page address. Refreshing or closing the tab discards it. See Privacy.
Not included
- Rewriting or AI features
- Grammar or spell checking
- Keyword density
- Word, PDF or rich-text documents
Frequently asked questions
Is my text uploaded?
No. It is counted in your browser. The site only delivers the page and its code.
Why does an emoji count as one character?
Characters are counted as a reader sees them, so a family or skin-tone emoji, a flag, or a letter with combining accents is one character. If the browser has no Intl.Segmenter, Unicode code points are counted instead and the page says so.
Why is my word count different in another tool?
Tools split words differently. This one uses the browser’s language-aware word segmentation, so numbers count as words, punctuation does not, and results can differ by browser and language.
Is the character goal the same as a social site’s limit?
Not necessarily. Sites have their own counting rules, so use the goal as a guide.
Can I count words in a Word or PDF file?
No. Only plain text is supported. Copy the text out of the document and paste it in.
Do I need an account?
No. The tool is free and needs no sign-in.