Also available in: Español · Português · Français · العربية
Character Counter — Count Characters Online for Free
Count characters, check platform limits like X and SMS, and see exactly how Unicode measures your text — free, instant, and private.
What is a character counter?
A character counter counts every character in your text — letters, digits, punctuation, spaces, emoji — as you type, so you always know exactly how much text you have. Unlike a word counter, which is built for measuring essays, a character count tool exists for the moment you're up against a hard limit: an Instagram bio, a text message, a meta description, a form field that cuts you off at some number nobody told you in advance.
That's why almost everyone who searches for a character counter already has a number in their head — 160, 280, 150 — and just needs to know, right now, whether their text fits. Type or paste your text above and the count updates on every keystroke, so you can trim or expand until you're exactly where you need to be, without refreshing a page or hitting submit to find out you were over.
How to use it
- Paste or type your text into the box at the top. The character count updates as the large headline number with every keystroke — no button to click, no page to reload.
- Pick a limit from the preset list — X post, SMS, Bluesky post, Instagram bio or caption, LinkedIn headline or post, YouTube title, meta description, title tag — or enter your own custom number. You'll see how much you've used, how much you have left, and a bar that turns red the moment you go over.
- Check the breakdown in the How characters are counted panel to see the same text measured three ways — as a reader sees it, in Unicode code points, and in UTF-16 code units — plus word, no-space, sentence, and line counts below. Copy or clear the text whenever you're done.
Every platform counts differently
X doesn't count characters at all — it counts weighted units, based on twitter-text's own configuration. Latin, Greek, Cyrillic, Hebrew and Arabic letters each cost 1 unit, but CJK characters cost 2, so a post written entirely in Japanese maxes out at 140 characters, not 280 — 日本語 alone already counts as 6. Every emoji costs 2 units regardless of how many code points it's built from, so 👍, 👍🏽, and the four-person family emoji 👨👩👧👦 all cost exactly the same. And every URL costs a flat 23 units, no matter its actual length, because X rewrites every link to a t.co short link — so a post containing one link only has 257 units left for everything else, not 280 minus the link's real character count.
SMS is stranger still, and it's worth understanding before you find out the hard way. A text message is 160 characters only while every character belongs to the GSM-7 alphabet — which, helpfully, does include accented letters like é, ñ, ü, à and ö. But a single character outside that alphabet re-encodes the entire message as UCS-2, and the limit drops from 160 to 70. Longer messages get split into segments, and splitting itself costs space: GSM-7 segments hold 153 characters each, UCS-2 segments hold only 67.
The consequence is easy to underestimate: 159 plain letters fit in a single SMS segment. Add one emoji to that same message and it becomes three segments — because the emoji forces UCS-2 encoding, and 160 UTF-16 units at 67 per segment needs three of them. If you're paying per segment, that one emoji just tripled your cost. A handful of characters cost two septets each even inside GSM-7 — ^ { } \ [ ] ~ | and € — so eighty euro signs fits exactly one segment at 160 septets, but eighty-one does not.
What the numbers do not tell you
The 160-character meta description and 60-character title tag presets are rules of thumb, not limits Google enforces. Google truncates by pixel width, not character count — roughly 920 pixels for a description, rendered at 13px in Arial, cut at a word boundary. Because a "W" is roughly twice as wide as an "i", 158 narrow characters can fit where 140 wide ones get cut off. The same caution applies to every social preset here: Instagram's 150-character bio and 2,200-character caption, LinkedIn's 220-character headline and 3,000-character post, YouTube's 100-character title, Bluesky's 300 — these are the published figures at the time of writing, platforms change them without notice, so treat every preset as a guide and check the platform directly if it matters.
Two more things worth knowing. The URL detection behind the X count is deliberately simple — it catches the links people actually paste, but it isn't X's full link parser, so an unusual URL shape can occasionally get counted as ordinary text instead. And underneath all of it sits a fact most tools hide: a character is not what your programming language calls string length. Type the family emoji 👨👩👧👦 and a naive length check reports 11; this tool reports 1, because that's what a reader actually sees. "café" can be stored as 4 units or 5 depending on whether the é is a single code point or an e plus a separate accent mark — identical on screen, different length — and it's 4 characters here either way, which is exactly why the three-way breakdown above exists.
Why is it free?
Everything above runs in your browser — the counting, the weighting, the segment math — so your text is never uploaded anywhere, there's no account to create, and there's no paid tier hiding a higher limit. Count as much text as your browser can hold, as many times as you need.