Menu

Character Counter

Purpose: Count characters in real time and check common limits (Tweet 280, SMS 160, meta description 160).

Character Counter: How It Works

Character limits are everywhere — social posts, meta descriptions, SMS, database fields, form validation — and almost every platform counts them slightly differently. This counter shows the numbers; this page explains why one string can have three legitimate lengths.

Common limits

WhereLimitNote
X / Twitter post280Links count as a fixed 23 regardless of length
SMS (GSM-7)160153 per part once concatenated
SMS (Unicode)70One emoji switches the whole message to this
Meta description~160Truncated by pixel width, not characters
Title tag~60Same — roughly 580 pixels
Instagram caption2,200Truncated after ~125 in the feed
LinkedIn post3,000'See more' appears after ~200
YouTube title100Truncated around 60–70 in most views

Note the recurring pattern: the hard limit and the visible limit are different numbers, and the visible one is what determines whether anyone reads your point. Write for the second.

The SMS trap

Standard SMS uses a 7-bit alphabet allowing 160 characters. Include a single character outside it — an emoji, a curly quote, an accented letter, an em dash — and the entire message switches to 16-bit encoding with a 70-character limit. A 150-character message that fitted in one segment becomes three segments, tripling the cost, because someone's text editor auto-converted a straight apostrophe into a curly one. For bulk messaging this is a real budget line.

Characters, code points and bytes

A visible character is not necessarily one unit of storage.

TextLooks likeCode pointsUTF-8 bytes
a111
é11 (or 2 if decomposed)2 (or 3)
中113
👍114
👨‍👩‍👧‍👦1725

That last row is a family emoji built from four people joined by zero-width joiners. It appears as one glyph and consumes 25 bytes. This is why a database column declared as VARCHAR(50) in bytes can reject a name that is clearly under fifty characters, and why truncating by byte count can split a character and produce a broken string.

Practical guidance

Frequently Asked Questions

Why does my SMS cost more than expected?
One character outside the standard GSM alphabet — an emoji, curly quote, accent or em dash — switches the whole message to Unicode encoding, cutting the per-segment limit from 160 to 70 characters. A 150-character message can become three segments.
Does an emoji count as one character?
Visually yes, but not in storage. A simple emoji is one code point and four UTF-8 bytes; a composite one like a family emoji is seven code points and 25 bytes while displaying as a single glyph.
Do spaces count?
Yes, in essentially every platform limit. This counter shows totals both with and without spaces, since some style guidelines and pricing models exclude them.
How long should a meta description be?
Around 150–160 characters, though the actual constraint is pixel width — about 920 on desktop and 680 on mobile. Put the important content first, because the end is what gets cut.
Why does my database reject a name that is under the limit?
The column is probably limited by bytes rather than characters. A name in Chinese, Japanese or with accented letters uses two to four bytes per character, so twenty characters can exceed a fifty-byte field.
How much of an Instagram caption is visible?
Roughly the first 125 characters before a 'more' link appears, out of a 2,200 limit. Anything that must be read — the hook, the offer, the question — belongs in that first section.

Related Text Tools

Browse all Text tools →