What is GSM-7 encoding?
GSM-7 is the default 7-bit SMS alphabet — 160 characters per message. One character outside it (an emoji, a curly quote) silently switches the whole SMS to UCS-2 and cuts capacity to 70.
Definition
GSM-7 is the 7-bit character encoding defined in GSM 03.38 (now 3GPP TS 23.038) that SMS uses by default. Packing each character into 7 bits fits 160 characters into the 140-byte payload of a single SMS. The alphabet covers basic Latin letters, digits, common punctuation, and a set of Greek and accented characters; ten more — including ^, {, }, [, ], ~, | and the euro sign — live in an extension table and cost two septets each because they are transmitted as an escape pair.
The critical behaviour: encoding is all-or-nothing per message. If even one character falls outside GSM-7 — an emoji, a curly “smart quote” pasted from a word processor, a Cyrillic or CJK character — the entire message is re-encoded as UCS-2 and capacity drops from 160 to 70 characters. The text looks identical on screen, but a two-segment message quietly becomes three and the bill grows accordingly. National language shift tables exist for Turkish, Spanish and several Indic languages, but support is inconsistent enough that most platforms treat non-GSM-7 text as UCS-2.
Why it matters
At campaign scale, one stray character is a 200% cost increase: 160→70 characters per segment triples the segment count of long messages. Checking encoding before sending — and hunting the offending characters — is the cheapest optimisation in all of SMS.
See it in action
Test your text in the SMS counter →