← All articles

How many characters fit in an SMS? Length, Unicode and multipart messages

6 min readDeutsch

One SMS holds 160 characters, or 70 once a single emoji or non-GSM character appears. How segments are counted, which characters cost two, and how to send more.

“How many characters does an SMS have?” sounds like a trivial question, but the wrong answer can double what you pay for every message. There is not one limit — it depends on which characters your text contains. This article explains how the length of an SMS is really counted and how to send more for the same price.

The short answer

EncodingLimit for 1 SMSWhen it is used
GSM-7 (standard alphabet)160 charactersLatin letters, digits, basic punctuation; German umlauts and ß included
Unicode / UCS-270 charactersAs soon as the text contains a single character outside GSM-7: an emoji, typographic quotes, or letters such as č, ő or ł

A single emoji or one “foreign” letter is enough and the whole message switches to Unicode — the limit drops from 160 to 70 characters. That is the most common reason why “one” SMS suddenly becomes two and you pay twice.

Why it works like this

The SMS standard assumes most of the world writes in basic Latin script. GSM-7 is a 7-bit character set that holds the English alphabet, digits, basic punctuation and a handful of symbols and accented letters — and 160 of them fit in one message.

Good news for German texts: ä, ö, ü, Ä, Ö, Ü and ß are part of GSM-7, as are é, è, ñ, å and ø. “Schöne Grüße aus München” therefore stays a normal 160-character SMS. What is not in GSM-7: most letters of Central and Eastern European languages (Czech č, ř, š, ž; Polish ł, ś; Hungarian ő, ű), French â, ê, ô, acute accents other than é (á, í, ó, ú), typographic quotes („ “ ” ‘ ’), the en dash (–), the ellipsis (…) and every emoji. One such character forces the operator to switch to Unicode (UCS-2), where every character takes 2 bytes — so only 70 characters fit in a message.

Multipart (concatenated) SMS

When the text is longer than the limit, it is not cut off — it is split into several parts that the phone reassembles. Note that the header used to join the parts costs characters, so the limit per part is lower:

Encoding1 SMSEach part of a multipart message
GSM-7160153
Unicode7067

Examples of how many billed SMS that makes:

TextCharactersGSM-7Unicode
“Vielen Dank für Ihre Bestellung”311 SMS1 SMS
150 characters1501 SMS3 SMS (3 × 67)
200 characters2002 SMS (2 × 153)3 SMS
65 characters with an emoji65—1 SMS
80 characters with an emoji80—2 SMS

See the jump: 80 characters in Unicode = 2 SMS, while the same 80 characters without the emoji = 1 SMS. On a large campaign that is half the budget.

What counts as 2 characters in GSM-7

A few characters are in GSM-7 but take 2 positions (they live in the so-called extension table). They push you over the limit without you noticing why:

{ } [ ] ~ ^ \ | €

So a URL with ~ or a price with € uses more characters than you expect. For € write “EUR” instead.

How to send more for the same money

  1. Stay inside GSM-7. Umlauts and ß are fine; what breaks the limit is usually a single emoji, a typographic apostrophe or a letter from another language. If you send to recipients in Czechia, Poland or Hungary, writing their names and words without diacritics keeps the message in GSM-7 — this is common and perfectly readable in transactional SMS.
  2. Watch the 160 / 70 boundary. An ideal transactional SMS has fewer than 160 GSM-7 characters.
  3. Shorten links. A long URL with UTM parameters easily eats 60 characters. A link shortener turns it into roughly 15 characters — and measures clicks on top.
  4. Avoid unnecessary characters from the extension table ({ } [ ] ~ ^ \ | €); they count as two. Beware of the ellipsis “…” (one character that editors often insert instead of three dots): it is not in GSM-7 at all and switches the whole message to Unicode. Write three plain dots. The same goes for typographic quotes and the en dash — use " and -. An emoji takes 2 characters in a Unicode message.
  5. Measure the length before sending. A good SMS gateway shows you, for every message, how many characters you have and how many SMS it will split into.

How TopSMS handles it

In the dashboard you see a counter next to every message: how many characters, which encoding and how many SMS the text will split into — before you send, so the price does not surprise you. Through the API the send response returns the exact number of charged parts (smsCount) and the price. We bill by the actual number of parts (segments), with no hidden rounding: a segment to Germany, Austria or the rest of the EU costs €0.084, to Czechia and Slovakia €0.036–0.040 depending on monthly volume — see the pricing.

Summary

  • GSM-7 (umlauts included): 160 characters per SMS (153 in a multipart message).
  • Unicode (emoji, typographic quotes, letters outside GSM-7): 70 characters per SMS (67 in a multipart message).
  • One such character switches the whole message to Unicode and halves the limit.
  • { } [ ] ~ ^ \ | € count as 2 characters in GSM-7.
  • GSM-7 text + shortened links = the cheapest and most readable SMS.
Want to try it? Create a free account — you get 10 free SMS after registration and see the length counter on your very first message.