The truncation you never see coming
You trimmed the post to 279 characters, pasted it into the platform, and it still complained. The culprit was one emoji, which you counted as a single character and the platform counted as two. Character limits look like the simplest constraint in writing, right up to the moment a counter and a platform disagree, or a meta description gets clipped mid-word in search results with an ellipsis hanging off the end like a loose thread.
The character counter above tracks characters with spaces, characters without spaces, and updates live as you type or paste. Everything runs in your browser and nothing is uploaded, which matters when the text is an unannounced product name, a client's confidential pitch, or a job application you would rather not route through someone else's server.
What "a character" actually means
Most of the time a character is what you expect: a letter, digit, punctuation mark, or space. The interesting cases sit at the edges, and edges are exactly where limits get enforced.
This tool counts Unicode characters, so a word with an accented letter behaves sensibly in most cases. One subtlety worth knowing: "Γ©" can be stored as a single code point or as the letter "e" plus a separate combining accent, depending on how the text was produced. The two look identical on screen and can count differently in systems that compare raw code points. Text copied from PDFs and older word processors is the usual source of these surprises.
Spaces count in the "with spaces" figure, including tabs and line breaks. The "without spaces" figure strips all whitespace. When a platform's documentation is ambiguous about which it enforces, assume spaces count, because almost all of them do.
The emoji caveat, honestly
Computers store text as numbers. Much of the web's software, JavaScript included, encodes those numbers in a scheme called UTF-16, where a single emoji often occupies two code units. Modern browsers can count perceived characters (what Unicode calls grapheme clusters) instead, and this tool uses that approach when the browser supports it. Platforms, however, apply their own weighting:
- A simple emoji like π is one perceived character. X counts most emoji as two toward its 280 limit.
- A family emoji π¨βπ©βπ§βπ¦ is a single perceived glyph built from several emoji joined by invisible zero-width joiner characters. One picture, many code points.
- Skin tone modifiers and combining marks attach visually to the preceding character but are stored separately.
The practical rule: when your text contains emoji and you are near a hard limit, test on the actual platform before trusting any counter, including this one.
Commonly cited platform limits
These are the numbers writers ask about most. Platforms change their limits and their counting rules, and some truncate by rendered pixel width rather than by count, so treat this table as a starting checklist, not scripture. Verify current limits before relying on them.
| Target | Commonly cited limit | Counting quirk |
|---|---|---|
| X (Twitter) post | 280 characters | Most Latin letters weigh 1; many CJK characters and emoji weigh 2 |
| SMS segment | 160 characters | Falls to 70 per segment once the message contains emoji or other non-GSM characters |
| Meta description | Roughly 155 to 160 characters | Google truncates by pixel width, so character count is a guide only |
| HTML title tag | Roughly 50 to 60 characters | Also pixel-based in search results |
| Instagram bio | 150 characters | Links and line breaks count |
| LinkedIn headline | 220 characters | Counts with spaces |
The SMS row deserves a sentence of its own. GSM-7 is the character set early mobile networks were built around, and it fits 160 characters in one segment. Add a single emoji, or an accented letter outside the GSM set, and the whole message switches to a wider encoding that holds 70 characters per segment. Longer messages split into multiple billed segments, each with its own overhead, so a 161-character text costs two.
Who lives by character counts
Social media managers check copy before scheduling, because a post that truncates in preview loses the line that made people click.
SEO writers and developers work two tight fields at once: the title tag and the meta description. The same people often run URLs through the slug generator, because slugs have soft length limits of their own and long slugs get visually shortened in results anyway.
Ad copywriters fill fixed-width fields in ad platforms, print classifieds, and sponsorship slots where every character was paid for.
Job seekers meet character caps in application forms, LinkedIn headlines, and short-answer boxes that reject a well-crafted 1,001st character with no apology.
Developers size database columns, SMS gateway payloads, and push notifications, where a too-long string is not a style problem but a bug.
Practical examples
A push notification that must not clip. Phones truncate notifications at different points depending on screen and OS, so front-load the payload. "Your order shipped" survives truncation; "We are pleased to inform you that, after some delay, your order has finally shipped" does not, and the clipped version may show only the pleasantries.
A conference abstract form with a 950-character box. These boxes count with spaces and usually reject rather than truncate, so paste the final version, not a draft, and count after you add the author line if the form includes it in the same field.
Tips that save characters without costing meaning
Shorten rather than delete. "In order to" becomes "to." "At this point in time" becomes "now." A pass with find and replace over habitual filler phrases routinely recovers five percent of a draft.
Count the version that ships, including hashtags, @mentions, and URLs. Some platforms wrap links and count them at a fixed weight regardless of visible length; X has long counted wrapped links as 23 characters. Others count the full URL. When in doubt, count the URL in full.
Front-load everything. Truncation cuts the end, so the payoff belongs at the front, not in the clause you were saving for last.
Common mistakes
Using the without-spaces figure for a platform limit. Nearly every platform counts spaces. The without-spaces number is useful for puzzles, forms, and languages where spacing conventions differ, not for compliance.
Assuming one character is one character everywhere. Emoji, CJK text, and combining marks all break that assumption in documented, platform-specific ways.
Counting a draft instead of the final. Scheduled posts gain tracking parameters, hashtags, and mentions late in the process. Count what actually ships.
Ignoring invisible characters. Pasting from a PDF or word processor can carry non-breaking spaces and zero-width characters that count toward limits but never appear on screen. Run suspicious pastes through the text cleaner before trusting the number.
Limitations, stated plainly
This tool counts characters, not pixels. Search results and phone notifications truncate by rendered width, and no character count fully predicts that behavior. Counts here can also differ from a platform's own counter on emoji-heavy or non-Latin text, for the encoding reasons described above, and platforms change their rules without announcing them in places you would notice. A count cannot tell you whether the characters earn their cost either. A 279-character post that says nothing still says nothing, just precisely. For everything around the constrained snippets, the word counter is the better instrument.
Frequently Asked Questions
Does this counter include spaces and line breaks?
The "with spaces" figure does, including tabs and newlines, which is what platforms enforce. The "without spaces" figure strips all whitespace. When a limit's documentation is ambiguous, assume spaces count.
Why does one emoji change my count so much?
An emoji can be several code points and even more code units, and platforms apply their own weights. X counts most emoji as two characters, and joined emoji sequences count as more. Test emoji-heavy posts on the target platform before scheduling.
How many characters does a URL cost?
It depends on the platform. X wraps links and counts them at a fixed 23 characters; other services count the visible URL in full. When you cannot verify, count the full URL, since overestimating only costs you a tighter draft.
Is 160 characters really the SMS limit?
160 is the per-segment capacity of GSM-7 encoding. Any character outside that set, including emoji and many accented letters, drops capacity to 70 per segment, and longer texts split into multiple billed segments.
Is my text uploaded anywhere?
No. Counting happens entirely in your browser with JavaScript and nothing leaves your device, which makes it safe for confidential copy, unannounced campaigns, and client work.
Which count should I use for a meta description?
Target roughly 150 characters with spaces and check a search preview, because Google truncates by pixel width rather than a fixed character count. Treat every published number for titles and descriptions as approximate.
Set your own limit lower
Pick one habit: write to ten characters under the platform's number, always. The margin absorbs the comma, the handle, and the late-breaking edit, and you will never again discover at publish time that 280 was not really 280.