Character Counter
Count characters, words, lines, paragraphs, and bytes. Live updates as you type. Useful for tweets, SMS, SEO meta, and submission limits.
Type, see counts live
A character counter that also breaks down words, lines, paragraphs, sentences, bytes (UTF-8), and an estimated reading time.
The quick brown fox jumps over the lazy dog. The end.
Characters: 53 Characters (no spaces): 43 Words: 11 Lines: 2 Paragraphs: 1 Sentences: 2 Bytes (UTF-8): 53 Reading time: 1 sec
What you'll use this for
Anywhere a character or word count matters — social posts, SMS, SEO, school essays, prompts, and submission forms.
Tweet limits
Stay under 280 characters for tweets or under any platform's hard limit.
SMS messages
SMS splits at 160 GSM-7 chars (70 for UCS-2). Check your message before you send.
SEO meta lengths
Title ≤60, description ≤155 chars — keep tags within Google's preview limits.
Writing goals
Track daily word counts for essays, articles, or NaNoWriMo manuscripts.
How to count characters
Paste your text
Drop it into the left editor. The counter updates instantly.
Choose grapheme mode
Grapheme-aware counts emoji and accents as one character each. Disable for raw JavaScript length (UTF-16 code units).
Read the breakdown
Total characters, words, lines, paragraphs, sentences, UTF-8 bytes, and reading time — all live.
Copy or download
Save the breakdown as .txt or copy to clipboard for later reference.
Frequently asked questions
Toggle grapheme mode. With it on, emoji and accented characters count as one character each (true visible characters). With it off, the JavaScript UTF-16 code-unit count is used — surrogate-pair emoji count as two.
Sentences are split on terminal punctuation (period, question mark, exclamation point) followed by whitespace or end of input. It's a heuristic — abbreviations like "Mr." may overcount.
Yes. No signup, no limits, no ads. Runs entirely in your browser.
UTF-8 bytes counts the number of bytes the text takes when stored or transmitted as UTF-8 — ASCII characters are one byte each, but accented Latin runs to two, CJK and many emoji to three or four. Useful for database column sizing and SMS payload calc.
Reading time is words ÷ 4 (seconds), rounded up — a rough proxy for ~240 words per minute. Tune mentally for technical or non-native content.
About character counting
Counting "characters" sounds simple until you hit Unicode. A single visible character on screen — a grapheme cluster — can be one Unicode code point or many. A flag emoji like 🇨🇦 is two code points; "é" can be one composed code point or two (e + combining accent). And every code point, in turn, might take one to four bytes when stored as UTF-8.
Which count do you want?
- Characters (grapheme-aware) — what users see on screen. Best for "is this under the visual limit?" checks.
- Characters (UTF-16 code units) — what
str.lengthreturns in JavaScript. Useful when matching a platform's documented limit (e.g. Twitter counts code points, SMS counts encoding units). - Bytes (UTF-8) — what's stored or sent over the wire. Important for database column sizing and HTTP payloads.
- Words / lines / paragraphs — high-level structure for prose and code reviews.