Character Encoding & Economics Published 2026-08-17 • 7 min read

UCS-2 vs UTF-8 in SMS: Why Emojis and Special Characters Cut Max Length to 70 Chars

Learn why including a single emoji or accented character slashes your SMS segment limit from 160 to 70 characters. Understand UCS-2 16-bit encoding mechanics.

Key Takeaway & Executive Summary

A single non-GSM character switches the entire SMS payload to 16-bit UCS-2 encoding, reducing single segment capacity from 160 to 70 characters (56% drop).

Modern software developers take UTF-8 for granted. However, the telecom signaling protocol (SMPP/SS7) does not support variable-length UTF-8. When an SMS contains any character outside the GSM-7 alphabet (such as an emoji, smart quote, or Cyrillic/Arabic/Chinese character), carriers switch the entire message to UCS-2 encoding.

1 The Mathematical Reality of UCS-2

In UCS-2, every character consumes 16 bits (2 bytes). Because standard SMS signaling packets are strictly capped at 140 bytes (1,120 bits):

- GSM-7: 1,120 bits / 7 bits per char = 160 characters per segment.
- UCS-2: 140 bytes / 2 bytes per char = 70 characters per segment.

Adding a single emoji to a 150-character message splits it from 1 segment into 3 billable segments!

Frequently Asked Questions • Character Encoding & Economics

Why does a 150-character UCS-2 message take 3 segments instead of 2?

When messages span multiple segments, carriers require a 6-byte User Data Header (UDH) in each segment, reducing multi-segment UCS-2 capacity to only 67 characters per segment (150 / 67 = 3 segments).

Related Technical Articles & Deep Dives

Copied to clipboard