tooldura

Text Tools

Why Character Counts Disagree: Emoji, Accents and SMS Segments

T
tooldura editorial
7 min readUpdated August 5, 2026Open tool →

Paste a family emoji into three different character counters and you can get three different answers: 1, 7, or 11. All three are defensible. The disagreement comes from a question with no single right answer, which is what counts as a character in the first place.

Three Definitions, Three Answers

Text has layers, and each layer counts differently.

Grapheme clusters are what a reader perceives as one character. The family emoji 👨‍👩‍👧 looks like one thing on screen, so by this definition it is one character. This is the count that matches human intuition.

Code points are the individual Unicode values behind that appearance. The family emoji is actually three people joined by invisible zero-width joiners, which is five code points. An accented é can be one code point or two, depending on whether it was typed as a single precomposed character or as an e followed by a combining accent.

Code units are how the text is stored in memory. JavaScript uses UTF-16, where most characters cost one unit but emoji cost two. This is what `"👋".length` returns in a browser console, and it returns 2, which surprises people.

This counter reports code units, the same number JavaScript sees, because that is what most platform limits are actually measured against.

How Major Platforms Count

Behaviour verified against current platform documentation. Platforms change these rules without announcement.

PlatformLimitHow it countsGotcha
X280Weighted code pointsLatin and most European text costs 1; CJK costs 2
X links23FixedEvery URL costs 23 no matter how short or long
SMS (GSM-7)1607-bit charactersOne accented letter can drop you to 70
SMS (UCS-2)7016-bit charactersTriggered by any character outside the GSM alphabet
Meta description~160Pixel widthWide letters like W and M eat the budget faster
Instagram caption2,200Code pointsLine breaks count; hashtags count
LinkedIn post3,000Code pointsTruncates visually near 210 with "see more"
YouTube title100Code pointsRejected outright above the limit, not truncated

The SMS Trap That Triples Your Bill

SMS is where character counting stops being academic and starts costing money. A standard text message holds 160 characters using GSM-7, a compact 7-bit alphabet covering unaccented Latin letters, digits and common punctuation.

The moment your message contains one character outside that alphabet, the whole message switches to UCS-2 encoding and the limit drops from 160 to 70. A single curly apostrophe, the kind Word inserts automatically, is enough to do it. So is an emoji, an em dash, or the é in café.

Messages longer than one segment get split and reassembled by the recipient's phone, and each segment is billed separately. A 150-character message with one smart quote becomes three segments instead of one. At scale that is triple the cost for a change nobody can see.

If you send transactional SMS, normalise your text first: replace curly quotes with straight ones, em dashes with hyphens, and strip accents where the meaning survives.

⚠️

Google measures pixels, not characters

The familiar 160-character meta description limit is a convenient approximation. Google truncates by rendered width, roughly 920 pixels on desktop. A description in narrow characters can survive past 165, while one full of capitals and wide letters gets cut before 145. Aim for 150 and front-load anything that matters.

Working Within Tight Limits

When you need to lose 20 characters and the meaning has to survive, these cuts do the least damage.

1

Delete the throat-clearing

Openers like "We are excited to announce" and "In this article we will" cost 25 to 30 characters and carry no information. The sentence almost always reads better without them.

2

Cut adverbs before you cut nouns

Very, really, actually, quite and just are usually free to remove. Nouns and verbs carry the meaning, so protect those first.

3

Use digits, not words

"5" instead of "five" saves three characters, and in headlines and captions the digit reads faster anyway.

4

Replace phrases with single words

"In order to" becomes "to". "At this point in time" becomes "now". "Due to the fact that" becomes "because". Each swap buys 10 to 15 characters.

5

Move detail out of the caption

If a caption will not fit, the detail probably belongs in the first comment or on the landing page. Squeezing it in usually costs clarity.

Check your count before you post

Characters with and without spaces, updated as you type.

Open Character Counter →

With Spaces or Without?

Both counts are shown because different industries need different ones.

The count with spaces is what platforms enforce. Every limit in the table above includes spaces, so this is the number to watch when drafting a post or a meta description.

The count without spaces comes from translation and typesetting. Translators are often paid per character excluding spaces, and typographers use it to estimate how much room text needs at a given size. If someone asks for a character count without telling you which, the safe assumption is that publishers and platforms mean with spaces, while translation agencies mean without.

Frequently Asked Questions

Related Tools

Keep Reading