press ⌘K to switch tools
TEXT
Word & Character Counter
Count words, characters, lines, and more.
text-counter
- Characters
- 0
- Characters (no spaces)
- 0
- Words
- 0
- Lines
- 0
- Bytes (UTF-8)
- 0
§01 ABOUT THIS TOOL
Overview
A live text counter for anything you need to fit into a limit: meta descriptions, tweet-length copy, form fields with byte limits, git commit subjects. It reports five stats simultaneously — Characters, Characters (no spaces), Words, Lines, and Bytes (UTF-8) — recalculated on every keystroke. Characters are counted as Unicode code points, so emoji and CJK text are counted correctly rather than as surrogate pairs.
How to use
- Type or paste into the text area (Type or paste text…).
- Read the stats grid below — all five values update instantly as you edit.
Examples
Hello world→ Characters11, no spaces10, Words2, Lines1, Bytes11こんにちは→ Characters5, Words1, Bytes (UTF-8)15(3 bytes per character)- A two-line commit message → Lines
2, useful for checking the 50/72 rule
Notes
Line counting treats \n, \r\n, and \r as line breaks equally. The
whitespace-based word count matches typical English conventions but is not
meaningful for unspaced scripts. The byte count reflects UTF-8 encoding — the
number that matters for database column limits and HTTP header size.
FAQ
Is my text sent to a server?
No. Counting runs entirely in your browser on every keystroke. Nothing is uploaded, stored, or logged.
How are characters counted for emoji and multi-byte text?
Characters are counted as Unicode code points, so an emoji like 😀 counts as 1 character even though it occupies 2 UTF-16 code units and 4 UTF-8 bytes. The Bytes (UTF-8) stat shows the actual encoded size.
What counts as a word?
Words are runs of non-whitespace separated by spaces, tabs, or newlines. Languages written without spaces, such as Japanese, are therefore counted as one word per continuous run — use the character counts for those.