What counts as a character?
Every character counter needs a definition of "character," and this one counts Unicode code points: every letter, digit, punctuation mark, space, and line break in your text adds one to the total. That's the same standard used by most character count online tools, and it means the count updates the instant you type or paste — no button to click. The "Characters" stat includes spaces and newlines; the "Without spaces" stat is the same text with all whitespace (spaces, tabs, and line breaks) removed, so you can see how much of your text is actual content versus formatting. Alongside those two, this word counter reports words (split on runs of whitespace), sentences, and paragraphs, all recalculated live as the text in the box changes.
Live platform limits
Below the stats grid sits a table of common limits: X (formerly Twitter) posts, Instagram captions, LinkedIn posts, TikTok captions, YouTube descriptions, meta descriptions, and SMS messages. Each row shows the platform's limit and a "Remaining" column that updates as you type, turning red once you've gone over. Use this as a quick twitter character limit counter before you post, or to check a meta description before you publish a page. These limits aren't uniform: SMS and meta descriptions cap out around 160 characters, X allows 280, and longer-form platforms like YouTube descriptions and LinkedIn posts stretch into the thousands. Platforms change their rules over time and paid tiers can allow more than what's shown here — double-check anything close to the edge.
How X and SMS counts are calculated
Most counters, including the "Characters" stat above, treat every code point as one character. X and SMS don't, so this tool calculates those two rows with each platform's real rules. On X, any link — no matter how long — counts as exactly 23 characters, because X shortens every URL to a fixed-length redirect before checking it against the 280-character limit. Most emoji, CJK characters (Chinese, Japanese, Korean), and many symbols each count as 2, even though they're a single code point; a multi-part emoji joined with zero-width joiners or skin tones still counts as one 2-character unit, not one per component. Plain Latin letters, digits, and everyday punctuation count as 1. A short sentence with one emoji and one link can use around 50 of the 280-character budget, while the "Characters" stat above shows well over 100.
SMS math is stricter still. A message made entirely of GSM-7 characters — the classic SMS alphabet covering English letters, digits, and basic punctuation — gets 160 characters in a single segment, or 153 per segment once it needs more than one. The instant a single character falls outside that alphabet — an emoji, a curly "smart" quote, an em dash, or any CJK character — the whole message silently switches to UCS-2 encoding, which cuts the budget to 70 characters per segment, 67 once it splits into more than one. A handful of GSM-7 characters also cost two character slots each even while still in GSM-7. The SMS row shows which encoding your text triggered and how many segments it needs, live.
Characters vs. graphemes: why emoji counting is tricky
This tool's main "Characters" stat counts Unicode code points, not what a person would call a single visible "character" — technically a grapheme cluster. For a simple emoji like 🎉, those agree: one code point, one glyph, so it counts as 1. But many emoji are built from several code points joined together — a family emoji joined with zero-width joiners, or a flag built from two regional-indicator letters, looks like one glyph but counts here as multiple characters, one per component. That's a real limitation worth being upfront about, not a bug: code-point counting is fast and simple, but it isn't the same as counting what you visually see. The X and SMS rows below don't share this problem — the section above explains exactly how they count instead.
Writing to a limit without losing your message
When you're trimming text to fit a hard limit, the easiest first move is to strip anything that isn't carrying meaning: repeated spaces, trailing whitespace, or a hashtag you can move elsewhere. After that, cut modifiers before nouns — adjectives and filler phrases go first, since removing them rarely changes what a reader understands. Watch the "Remaining" column as you edit: once it turns red, you're over. For captions destined for multiple platforms, write to the tightest limit first — usually SMS — and treat looser ones like LinkedIn or YouTube as versions you can expand. If you're consistently landing just over a limit, check whether emoji, links, or a smart quote copy-pasted from another editor are quietly costing you more than plain text would.