Back to all guides & notes
2026-10-14•5 min read•Telephony Architecture

Understanding GSM-7 vs. UCS-2 Unicode: Why One Emoji Doubles Your SMS Cost

The technical mechanics of SMS character encoding explained. Why 160 characters becomes 70 characters the instant you type an emoji or Hindi Devanagari character.

#Technical Deep Dive#GSM-7#Unicode#SMS Segmentation

Why Did My 80-Character Message Split into Multiple Segments?

Every month, thousands of business owners are surprised to find their SMS allowances exhausted twice as fast as expected. The culprit is almost always character encoding.

Understanding how cellular telecommunication networks process text messages is critical for keeping your dispatches efficient and within your carrier quotas.


The GSM-7 Standard: 160 Characters per Segment

In standard cellular specifications (3GPP TS 23.038), Short Message Service (SMS) payloads are limited to 140 octets (1,120 bits) of data.

Standard Latin letters (A–Z, a–z), numbers (0–9), and a specific set of basic punctuation marks are encoded using the 7-bit GSM Default Alphabet:

  • 1,120 bits ÷ 7 bits per character = 160 characters in a single standalone SMS.

If your message exceeds 160 characters, cellular networks split it into multiple parts. Because each multipart segment requires a 6-octet User Data Header (UDH) for reassembly instructions on the recipient's phone:

  • Each concatenated segment holds only 153 characters.
  • A 165-character GSM-7 message consumes 2 SMS segments (153 + 12).

Enter UCS-2 Unicode: 70 Characters per Segment

The moment your message contains even a single character outside the 7-bit GSM alphabet:

  • Non-Latin scripts (Hindi/Devanagari, Marathi, Tamil, Bengali, Arabic, Cyrillic)
  • Modern graphical emojis (😊, 🚗, 🎉, 🙏)
  • Special punctuation marks like curly quotes or smart apostrophes

The cellular carrier's SMSC (Short Message Service Center) must immediately switch the entire message encoding to UCS-2 (16-bit Unicode).

At 16 bits per character:

  • 1,120 bits ÷ 16 bits = 70 characters for a single standalone SMS.
  • For multipart concatenated Unicode messages (with UDH headers): 67 characters per segment.

The Real-World Impact

Consider this common business reminder:

```text

Hello Rajesh, your appointment at Dr. Mehta Clinic is confirmed for tomorrow at 4 PM. Please arrive 10 min early.

```

  • Length: 114 characters.
  • Encoding: GSM-7.
  • Segments: 1 SMS segment.

Now add a single friendly smiley emoji at the end:

```text

Hello Rajesh, your appointment at Dr. Mehta Clinic is confirmed for tomorrow at 4 PM. Please arrive 10 min early. 😊

```

  • Length: 116 characters.
  • Encoding: UCS-2 Unicode.
  • Segments: 2 SMS segments (exceeds the 70-character limit, split into 67 + 49 chars).

By adding one emoji, you consumed 200% of your SIM quota for the exact same message.

ApnaSandesh features an integrated Live SMS Segment Calculator that inspects character encoding in real time and highlights non-GSM characters before you hit send.

Download ApnaSandesh on Google Play

Start communicating directly from your Android phone without cloud servers.

View on Google Play