SMS character limits and encoding, explained

Why an SMS is 160 characters until it isn't, how GSM-7 and UCS-2 encoding work, what emojis and smart quotes cost you, and how to keep messages to one segment.

·5 min read

Everyone knows a text is 160 characters. Fewer people know that a single character can silently cut that to 70, and that you are billed per segment rather than per message.

This is the most common reason an SMS bill comes in higher than expected.

Two encodings, two limits

Standard SMS uses a character set called GSM-7, which covers the Latin alphabet, digits and common punctuation, and fits 160 characters in one segment. If your message contains any character outside that set, the whole message switches to UCS-2, and the limit drops to 70 characters per segment.

That switch is all-or-nothing. One out-of-set character anywhere converts the entire message, which is why a 120-character message can unexpectedly become two segments.

  • GSM-7: 160 characters per segment
  • UCS-2: 70 characters per segment — triggered by any single out-of-set character
  • Concatenated messages lose a few characters per segment to headers
  • Billing is per segment, not per message

The characters that catch people out

Emojis are the obvious one. The subtle ones are curly quotation marks and apostrophes, en and em dashes, and ellipsis characters — exactly what word processors and some CMS editors produce automatically when you type straight quotes.

This is why a message composed in a word processor and pasted into a sending tool can cost double for no visible reason. The text looks identical; the encoding is not.

Keeping to one segment

Compose in a plain text editor, or use a tool that shows live segment count and flags the offending characters. Replace curly punctuation with straight equivalents and drop the emoji unless it is genuinely earning its place.

Trimming a message from 170 to 155 characters halves its send cost. At any real list size, that arithmetic matters more than most of the optimisations people spend time on.

Key takeaways

  • GSM-7 gives 160 characters; one out-of-set character drops it to 70.
  • Curly quotes and dashes from word processors are the silent culprit.
  • Billing is per segment, so encoding directly drives cost.
  • Trimming 170 characters to 155 can halve what a campaign costs.

Put this into practice with Text2Sale

Upload your leads, automate fast first-touch texts and follow-ups, stay 10DLC and TCPA compliant, and manage every conversation in one inbox.

Frequently asked questions

Why did my 120-character text count as two messages?

It almost certainly contained a character outside the GSM-7 set — commonly a curly apostrophe, an em dash or an emoji. That switches the whole message to UCS-2 encoding, where the limit is 70 characters per segment rather than 160.

Do emojis cost more in SMS?

Effectively yes. An emoji forces the message into UCS-2 encoding, cutting the per-segment limit from 160 characters to 70, so a message that would have been one segment can become two or three.

How do I keep a text to one segment?

Compose in plain text rather than a word processor, replace curly quotes and dashes with straight equivalents, avoid emojis unless they earn their place, and use a tool that shows a live segment count as you type.

Keep reading