SMS character limits:
160, 153, 70 and 67

Four numbers that decide what you pay. Here is where each one comes from, and which characters quietly move you from the first pair to the second.

The short answer

SituationCharacters you get
Plain English, fits in one SMS160
Plain English, message is split across several153 per part
Contains any non-GSM character, one SMS70
Contains any non-GSM character, split67 per part

Why 160

An SMS payload is 140 bytes — a limit set when the standard was designed in the 1980s around spare capacity in the signalling channel. The GSM-7 alphabet packs each character into 7 bits rather than 8, so 140 bytes × 8 ÷ 7 = 160 characters. The number is not a policy anyone chose; it falls out of the arithmetic.

Why it drops to 153

A longer message is not sent as independent SMS. It is split into parts, and each part carries a 6-byte header (a UDH) telling the handset which message this belongs to and what order to reassemble in. That header eats 7 characters of GSM-7 space, leaving 153.

This produces the counter-intuitive boundary that costs people money:

LengthSegmentsWhy
1601Fits without a header
1612Needs splitting, so both parts drop to 153
3062153 × 2
3073153 × 3 = 459 available

One character past 160 doubles the bill. Cutting a 161-character message by one character is the cheapest saving available in SMS.

Why one emoji costs you 90 characters

GSM-7 has a fixed alphabet of about 128 characters. Anything outside it forces the entire message to UCS-2 (Unicode), where each character takes 16 bits instead of 7. 140 bytes ÷ 2 = 70 characters, and 67 once split.

This applies to the whole message, not the one character. A 159-character English promo is one segment. Add one emoji and it is 160 characters of Unicode — which at 67 per part is three segments. One character, triple the cost.

Characters that trigger Unicode without looking like it

Emoji are obvious. These are the ones that catch people, and they usually arrive by pasting from a word processor or a design tool:

Looks likeActually isType this instead
’ curly apostropheU+2019, not GSM' straight apostrophe
“ ” curly quotesU+201C/201D" straight quotes
– en dash, — em dashU+2013 / U+2014- hyphen
… ellipsis characterU+2026... three dots
Non-breaking spaceU+00A0Normal space
Any Chinese, Tamil or Jawi textUnicode by definitionNo workaround — budget 70

Word processors substitute the first four automatically as you type. If a message looks like plain English but your platform reports Unicode, one of these is why.

GSM characters that quietly count double

A handful are in the GSM-7 alphabet but stored as two characters via an escape sequence: [ ] { } \ ~ ^ | and the euro sign. They do not force Unicode, but each one consumes two of your 160.

The Malaysian detail that breaks calculators

Malaysian commercial routes prepend a short prefix to your message, and those characters come out of your 160, not the operator's. A message you measured at exactly 160 characters in a text editor bills as 2 segments.

Generic online SMS counters do not know about this, which makes them wrong at exactly the boundary where being wrong is expensive. Our segment calculator counts the prefix, so the number it shows is the number you are billed.

Practical limits to write to

What this means for a campaign budget is worked through in bulk SMS cost in Malaysia.

Frequently asked questions

What is the SMS character limit?

160 characters for a single message in plain English (GSM-7 encoding). If the message is longer it is split, and each part then holds 153 because a reassembly header consumes the rest. With any non-GSM character the limit is 70, or 67 per part when split.

Why is my SMS limit 70 characters?

The message contains at least one character outside the GSM-7 alphabet, which forces the whole message to Unicode where each character takes 16 bits instead of 7. Usually an emoji, Chinese text, or a curly apostrophe pasted from a word processor.

Does an emoji really triple the cost?

It can. A 159-character English message is one segment. Adding one emoji makes it 160 Unicode characters, which at 67 per part is three segments. The emoji does not cost extra by itself — it re-prices every other character in the message.

How many characters is 2 SMS?

306 in plain English (153 × 2), or 134 in Unicode (67 × 2). Note it is not 320: once a message is split, every part loses 7 characters to the reassembly header, including the first.

Do spaces and line breaks count?

Yes, both count as characters. A line break is one character in GSM-7. Trailing spaces at the end of a message count too, and are a common reason a message that looks like exactly 160 characters bills as two segments.

Count your own message

The calculator shows encoding, segments and cost live, including the operator prefix.