Skip to content
OmniChannels.ai

SMS and telecom

What is GSM-7 encoding?

GSM 7-bit default alphabet · GSM 03.38

Definition

GSM-7 is the default 7-bit SMS alphabet defined in 3GPP TS 23.038 (formerly GSM 03.38). It fits 160 characters in a single SMS, or 153 per segment when a message is split.

An SMS carries up to 140 octets of user data (3GPP TS 23.040). Packing 7-bit characters gives 140 × 8 / 7 = 160 characters. GSM-7 covers basic Latin letters, digits, common punctuation and some accented and Greek letters.

Some characters live in an extension table reached through an escape character, so each counts as two: the form feed and ^ { } \ [ ] ~ | €. A message with a few euro signs or braces therefore holds fewer than 160 visible characters.

If any character in the message is outside GSM-7 and its extension table — an Arabic letter, an emoji, or a curly quote pasted from a word processor — the whole message switches to UCS-2, which fits only 70 characters per SMS.

For long messages, a user data header takes space in every segment, leaving 153 GSM-7 characters per part (152 with a 16-bit reference number). An escaped character is never split across two segments.

Check messages before a campaign: replacing one smart quote with a straight quote can halve the number of billed segments.

Example

"Your code is 123456" = 19 GSM-7 characters, 1 segment. "Price: 20€" = 10 characters but 11 septets, because € is sent as escape + code.

Sources