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.