Character Counter_
A words and character counter that counts what a reader actually sees: emoji, accents, and Chinese characters each count as one. Live tiles for characters with and without spaces, words, sentences, paragraphs, lines, and reading time — plus remaining-space meters for X, SMS, meta descriptions, Instagram, LinkedIn, YouTube, and email subjects.
Everything is counted in your browser as you type. Drafts, cover letters, confidential text — nothing you paste here is uploaded or stored anywhere.
- Input
- Anything you type or paste — a tweet, an essay, a meta description, a CJK or emoji-heavy string. Nothing is uploaded and nothing is stored.
- Output
- Characters with and without spaces, words, sentences, paragraphs and lines, plus reading and speaking time — and, when you need them, graphemes, UTF-16 units, code points and UTF-8 bytes.
- Processing
- Counted in this tab on every keystroke, grapheme-aware through
Intl.Segmenterso a family emoji counts as one character rather than seven. - Limits
- No length cap and no rate limit. Very long pastes count in yielding passes so the page keeps responding.
- Platform meters
- Live limits for X, SMS segments, meta title and description, Instagram caption and bio, LinkedIn and YouTube — each using that platform’s own counting rule, not a generic character count.
What a character counter counts, and why tools disagree
Four different numbers, all correct
Take the family emoji 👨👩👧👦. You see one character. This character counter tool reports it as one, because it counts graphemes — user-perceived characters, the way your browser's Unicode segmenter groups them. But underneath, that emoji is 7 code points joined by invisible zero-width joiners, 11 UTF-16 code units (what JavaScript's .length and Excel's LEN report), and 25 bytes of UTF-8 (what databases and APIs usually limit). Every counter that shows you a different number has simply picked a different one of those four systems — usually without saying so. The strip under the tiles shows all four, labelled, so the number you need is always there.
Chinese, emoji, and accents
As a Chinese character counter: 你好 is two characters here, exactly as a reader would say — though X weighs each CJK character as 2 toward its 280 limit, and UTF-8 stores each in 3 bytes, which is why the same text "fits" in one system and overflows another. Accented letters are one character whether they arrive precomposed (é) or as a letter plus combining accent (e + ´) — the grapheme count is the same even though the code-point count differs, which is precisely the kind of disagreement that makes people think a counter is broken.
Why Microsoft Word gives a different number
Looking for the character counter in Word? It's under Review → Word Count, or the word count in the status bar (click it for the character figures). Word's numbers can legitimately differ from this page's: Word lets you include or exclude footnotes and text boxes, counts fields after they're evaluated, and treats some joined punctuation differently when splitting words. In Excel, =LEN(A1) counts UTF-16 code units — so one emoji adds 2 to LEN — and =SUMPRODUCT(LEN(A1:A10)) totals a range. If a submission portal disagrees with everything else, it is almost always counting code units or bytes rather than visible characters.
What counts as a word, and where word counters disagree
This word and character counter uses the browser's locale-aware segmenter for words and sentences: "don't" is one word, "3.5" is one word, and CJK text is segmented without needing spaces. Sentence counting follows terminal punctuation. Reading time assumes 238 words per minute of silent reading and speaking time 130 wpm — averages, useful for talks and video scripts rather than precise promises.
If the word count is the number you came for rather than one figure among ten, the word counter leads with it and adds the things a writer working to a limit needs: pages at both spacing conventions, and a target you set yourself that counts down as you write. This page stays the right one when the ceiling is measured in characters — a post, a bio, a meta description, an application field.
Paste your text and read the number that matters
- 01Paste or type — this free online character counter updates every count live, no button to press.
- 02Read the tiles for the writer numbers: characters with and without spaces, words, sentences, paragraphs, lines, reading and speaking time.
- 03Check the encoding strip when a system disagrees with you — graphemes, UTF-16 units, code points, and UTF-8 bytes are all shown, labelled.
- 04Watch the platform meters fill as you write: X uses its real weighted counting, SMS shows the encoding and segment count, and the rest track their platform limits. Red means over.
Four limits people actually write against
An X post that actually fits
280 weighted characters — most Latin text counts 1, every emoji and CJK character counts 2, and any link counts 23 flat. The meter uses the real weighting.
Shipping day 🎉 new tool is live
X post: 32 / 280 (emoji weighs 2)
Meta title and description that don't get cut
Google truncates titles around 60 characters and descriptions around 155–160. Draft both here and stop guessing what survives the snippet.
Free Online Character Counter — Live & Emoji-Accurate
Meta title: 53 / 60 ✓
SMS campaign cost check
160 GSM characters per message — until one emoji or curly quote flips the whole text to 70-character UCS-2 segments and doubles the bill.
Flash sale today! Show this text for 20% off 🎁
SMS: UCS-2 · 47 units · 1 segment (would be GSM-7 without the emoji)
Essay and application limits
A 4,000-character personal statement or a 650-word essay: watch characters and words at once, and paragraphs to keep structure honest.
(your draft)
3,996 characters · 612 words · 5 paragraphs
Platform character limits (bookmark this)
| Platform / field | Limit | Counted how | Notes |
|---|---|---|---|
| X (Twitter) post | 280 | Weighted: Latin 1, CJK/emoji 2 | Any URL counts as 23 regardless of length |
| SMS — GSM-7 | 160 / segment (153 concatenated) | Septets; ^ { } [ ] \ | ~ € cost 2 | Plain-alphabet messages |
| SMS — UCS-2 | 70 / segment (67 concatenated) | UTF-16 units; emoji = 2 | One emoji or smart quote flips the whole message |
| Meta title | ~60 | Rendered pixels ≈ characters | Google truncates by pixel width, ~600 px |
| Meta description | ~155–160 | Rendered pixels ≈ characters | Longer text is cut with an ellipsis |
| Instagram caption | 2,200 | Characters | Line breaks count; truncated after ~125 in feed |
| Instagram bio | 150 | Characters | |
| LinkedIn post | 3,000 | Characters | "See more" fold after ~210 |
| LinkedIn headline | 220 | Characters | |
| YouTube title | 100 | Characters | Search results show ~70 |
| YouTube description | 5,000 | Characters | First ~157 show above the fold |
| Email subject | ~60 shown | Characters | RFC allows 78+; mobile clients show 30–40 |
| Facebook post | 63,206 | Characters | Feed truncates far earlier |
Display truncation numbers are approximations — platforms cut by pixels and UI context, not exact character counts. Hard limits (280, 2,200, 3,000…) are exact.
One string, four numbers
| Counting system | 👨👩👧👦 café 你好 | Who counts this way |
|---|---|---|
| Graphemes (this page) | 9 | Humans; this counter; most modern form fields |
| Code points | 15 | Unicode-aware APIs; Instagram; Python len() |
| UTF-16 code units | 19 | JavaScript .length, Excel LEN, Java, old databases — where “emoji count as 2” comes from |
| UTF-8 bytes | 31 | Databases (VARCHAR), HTTP APIs, file sizes |
The string is one family emoji (ZWJ sequence), a space, café, a space, and two CJK characters. Every row is a correct answer to “how long is it?” — to a different question.
Matching the count the box is actually enforcing
- Draft X posts to ~250 weighted characters — replies and edits always need room, and trims hurt less with slack.
- Meta descriptions: front-load the value proposition in the first ~120 characters; the tail is what gets cut on mobile.
- Sending SMS at scale? One emoji converts every segment of the whole campaign from 160 to 70 characters. Check the encoding line before you send, not after the bill.
- Paste from Word before publishing: smart quotes (‘ ’ “ ”) and em dashes are not GSM characters and can silently flip SMS encoding or inflate byte counts.
- Instagram counts line breaks toward the 2,200 — a heavily formatted caption is shorter than it looks.
- Trailing spaces and newlines count. If a portal says 4,001/4,000, check the end of your paste first.
Where a character count misleads
Every counter gives a different number
Four counting systems exist (graphemes, code points, UTF-16 units, bytes) and most tools pick one without telling you. Neither tool is “wrong” — they answer different questions. Compare like with like: this page labels all four.
“One emoji counted as 2 characters”
Any system counting UTF-16 code units — Excel LEN, JavaScript .length, X’s weighting, older databases — sees astral-plane emoji as two units (a surrogate pair). A skin-tone family emoji can be 11 units while reading as one character.
The SMS 160 → 70 cliff
SMS has two encodings, not one limit. Pure GSM-7 text packs 160 per message; a single character outside that set (emoji, curly quote, non-breaking space, — dash) re-encodes the entire message as UCS-2 at 70. Multi-segment messages drop to 153/67 per segment for stitching headers.
Invisible characters inflate counts
Trailing newlines, double spaces, non-breaking spaces pasted from web pages, and zero-width joiners all count in most systems while being invisible on screen. The with/without-spaces pair and the bytes tile make them findable.
Word counts differently — by design
Word’s Review → Word Count can include or exclude footnotes and text boxes, evaluates fields first, and joins some hyphenated forms into one word. When a teacher’s Word count and a web counter disagree by a few words, that’s configuration, not a bug.
How each number is computed
- Character counting
- Grapheme clusters via
Intl.Segmenter; without it, code points are counted and ZWJ sequences over-count (documented fallback) - Words & sentences
- Locale-aware
Intl.Segmenterword/sentence granularity — contractions are one word, CJK segments without spaces - Encodings shown
- Graphemes · UTF-16 code units · Unicode code points · UTF-8 bytes, all labelled
- SMS math
- GSM 03.38 basic + extension tables (extension chars cost 2 septets); 160/153 GSM-7, 70/67 UCS-2 segment packing
- X weighting
- twitter-text v3 ranges — Latin/European code points weigh 1, CJK and emoji weigh 2; URLs count 23 on the real platform (not rewritten here)
- Reading / speaking
- 238 wpm silent reading · 130 wpm speaking, rounded — averages worth planning against rather than promises.
- Large pastes
- Inputs past ~100k units are counted asynchronously in yielding passes — the page never freezes on a book-length paste
- Network
- None from tool code. A test sweep calls every function this page uses with
fetchandXMLHttpRequestreplaced by stubs that throw, so a stray request fails the build instead of shipping. Disconnect from the network and the page still works.
Questions about counting characters and words
Why does another character counter show a different number?
Because it is counting a different unit — UTF-16 code units, code points, or bytes instead of visible characters. Emoji and CJK text make the difference obvious: one family emoji is 1 grapheme, 7 code points, 11 UTF-16 units, and 25 bytes. All four numbers are shown here, labelled, so you can match whatever system the other tool or portal uses.
How are emoji counted?
As one character each, including multi-person emoji with skin tones — that is how grapheme segmentation groups them and how readers perceive them. The UTF-16 line shows the “emoji counts as 2 (or 11)” number that other systems report.
Is my text uploaded anywhere?
No. Counting runs as JavaScript on this page; there are no processing servers and your text never leaves the browser tab. Close the tab and it is gone — nothing is auto-saved.
How do I count characters in Microsoft Word?
Review → Word Count shows characters with and without spaces, or click the word count in the status bar. Check the “include footnotes and endnotes” toggle if numbers differ between people looking at the same document.
How do I count characters in Excel or Google Sheets?
Use =LEN(A1) for one cell or =SUMPRODUCT(LEN(A1:A10)) for a range. LEN counts UTF-16 code units, so an emoji adds 2 — paste the same text here and read the UTF-16 line to reconcile.
What are the character limits on X, Instagram, and SMS?
X: 280 weighted (CJK/emoji count double, links count 23). Instagram: 2,200 caption, 150 bio. SMS: 160 per message in GSM-7, dropping to 153 per segment when concatenated — or 70/67 the moment any non-GSM character appears. The full table above covers meta tags, LinkedIn, YouTube, and email subjects.