Character Counter

Runs 100% in your browser — nothing you paste is uploaded or stored.

Characters
0
Without spaces
0
Words
0
Sentences
0
Paragraphs
0

Platform limits

Limits change over time and this table reflects commonly cited values — long-form or paid tiers on some platforms allow more. X and SMS use each platform's real counting rules, not a plain character count; see "How X and SMS counts are calculated" below for why.

Platform Model Limit Remaining
X (Twitter) post Weighted: links = 23, emoji/CJK = 2, Latin/digits = 1 weighted 280
Instagram caption Plain code-point count code points 2,200
LinkedIn post Plain code-point count code points 3,000
TikTok caption Plain code-point count code points 2,200
YouTube description Plain code-point count code points 5,000
Meta description (SEO) Google truncates by pixel width — 160 is a rough guideline, not a hard limit ≈ guideline 160
SMS GSM-7 · 0 segments GSM-7 / UCS-2 160

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.

Frequently asked questions

Do spaces and line breaks count as characters?

Yes. The character counter counts every Unicode code point in your text, including spaces, tabs, and line breaks. The "Characters" stat includes them; the "Without spaces" stat is the same count with all whitespace removed, so you can compare the two if you need to know how much of your text is actual content versus formatting.

Why might a platform count emoji differently?

This tool's main "Characters" stat counts Unicode code points, and a simple emoji like 🎉 is one code point, so it counts as 1 there. But many emoji, like a family emoji joined with zero-width joiners or a flag made from two letters, are actually built from several code points and count as more than 1 in that stat even though they display as a single glyph. The X and SMS rows in the platform table don't have this problem: they use each platform's real counting rules, so a ZWJ emoji sequence is correctly counted as one 2-character unit on X, and any link is always exactly 23 characters, regardless of length.

How are sentences detected?

Sentences are detected by splitting the text on runs of ".", "!", "?", or "…" followed by whitespace or the end of the text. That's a reasonable approximation for ordinary prose, but it isn't true sentence parsing, so it can be fooled: an abbreviation like "Dr." or "etc." is read as a sentence break, and a decimal number like "3.14" gets split at the period. For most everyday text the count is close enough to be useful, but treat it as an estimate rather than an exact linguistic count.

Is my text stored anywhere?

No. Everything runs in your browser's JavaScript — nothing you type or paste is uploaded, logged, or stored anywhere, including the platform-limit calculations.