Character counter
Live character count with a progress ring for every platform limit.
Limits
Each platform counts a little differently. Every ring below uses that platform's own rules.
Counting
- X (Twitter) 0 / 280
- Instagram caption 0 / 2,200
- Meta description 0 / 160
- Page title 0 / 60
- SMS 0 / 160
Related tools
-
Word counter
Live word, character, sentence and paragraph count as you type. -
Case converter
Ten cases, converted as you type: sentence, Title, camelCase, snake_case and more. -
Remove line breaks
Turn text that wraps mid-sentence back into running paragraphs. -
Reverse text
Reverse characters, words or lines, or turn the text upside down. -
Lorem ipsum generator
Placeholder text by paragraphs, sentences or words, ready to paste.
Paste or type text and see how many characters it holds, with and without spaces, plus words, lines and UTF-8 bytes. Below that sits a ring for each limit people actually write against: 280 on X, 2,200 for an Instagram caption, 160 for a meta description, 60 for a page title and 160 for one SMS. Each ring counts the way that platform counts, so an emoji, a link or a curly quote moves the number where it really would. The text stays in your browser, nothing is uploaded, and Clear forgets the copy kept on this device.
How to use
- Paste or type your text into the box. Every count updates as you type.
- Read the row of counts: characters, characters without spaces, words, lines and UTF-8 bytes.
- Watch the ring for the limit you care about. It turns amber near the limit and red past it.
- Click any number to copy it, or use Copy counts for the whole report.
- Use Clear to empty the box and forget the saved text.
What it handles
- One character outside the GSM alphabet — an emoji, a curly quote, any Cyrillic or Greek letter — switches the whole SMS to Unicode, where a part holds 70 characters instead of 160. The counter names the character that did it.
- The GSM extension characters ^ { } [ ] ~ \ | and € take two of the 160 each.
- An SMS longer than one part loses room to the joining header: 153 characters per part in GSM-7, 67 in Unicode.
- X counts most emoji and every Chinese, Japanese or Korean character as two, and charges every link 23 characters however long the address is.
- In the plain count an emoji, a flag or a letter with a combining accent is one character, the way you would count it by eye.
- The 160 for a meta description and 60 for a title are working limits, not hard ones: Google cuts a snippet by pixel width, so wide letters run out sooner.
FAQ
Why does my SMS drop from 160 characters to 70?
A text message is packed with the 7-bit GSM alphabet, which holds 160 characters. That alphabet has no emoji, no curly quotes and no Cyrillic, so a single one of those switches the whole message to Unicode, where only 70 characters fit in a part. The counter shows which character caused the switch, so you can replace it and get the 160 back.
Does X count an emoji as one character?
No. X gives most emoji, and every Chinese, Japanese and Korean character, a weight of two, so a 280-character post holds only 140 of them. A whole emoji sequence still counts as two, not two per part, so a family emoji made of four people is two. Every link is charged 23 characters, whatever its real length.
Is a meta description really limited to 160 characters?
Not exactly. Google cuts the snippet by pixel width, not by a character count, so a line of wide capitals is trimmed sooner than a line of narrow lowercase. The 160 here, like the 60 for a page title, is the working limit editors use to stay safely inside the box. Treat the ring as a warning, not a rule.
Do spaces count towards a character limit?
Yes, on every platform in this list. A space, a tab and a line break each take one character on X, in an Instagram caption, in a meta description and in an SMS. The second number, characters without spaces, is there for word-count style checks and for editors who ask for it, not for platform limits.
Does the text leave my browser?
No. The counting runs in the page on your device, so the tool keeps working with the connection switched off once the page has loaded. Nothing is sent anywhere and nothing is logged. The only copy kept is in your browser's local storage, so the text is still here when you come back, and Clear deletes it.
Is there a limit on how much text I can paste?
There is no fixed limit. Up to about 20,000 characters the counts appear as you type; above that the work moves to a background thread with a progress readout, so the page never freezes, and a megabyte takes under a second. The copy kept in your browser stops at 200 KB, so very long texts are counted but not remembered.
Updated