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
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).