# What is GSM-7 encoding?

> GSM-7 is the default 7-bit character encoding for SMS, defined in 3GPP TS 23.038. It covers the basic Latin alphabet, digits, and punctuation — roughly 128 characters — and fits 160 characters into a single SMS segment. Any character outside the GSM-7 set (emoji, Arabic, Cyrillic, accented Latin such as é or ñ) forces the whole message into UCS-2, which drops the limit to 70 characters per segment.

- Canonical URL: https://www.broadnet.me/answers/what-is-gsm-7
- Language: en
- Last reviewed: 2026-07-22
- Publisher: BroadNet (https://www.broadnet.me)

## Why the character set drives cost

SMS is billed per segment. Nine 'extended-table' characters — | ^ € { } [ ] ~ and backslash — each cost two of the 7-bit characters. Worse, a single non-GSM-7 character (one emoji, one Arabic letter) switches the entire message to UCS-2 and can double your segment count. Model the split before you send with the /tools/sms-segment-calculator.

## Concatenation and the 153 / 67 rule

When a message spans multiple segments, a 6-byte User Data Header (UDH) is added to each part for reassembly, stealing space. So a concatenated GSM-7 message holds 153 characters per segment (not 160), and a concatenated UCS-2 message holds 67 (not 70). See /answers/what-is-ucs-2-sms and /answers/what-is-udh-sms.

## Related

- [All answers](https://www.broadnet.me/answers)
- [Glossary](https://www.broadnet.me/answers)
- [UCS-2 — Unicode SMS encoding explained](https://www.broadnet.me/answers/what-is-ucs-2-sms)
- [GSM 7-bit vs UCS-2 encoding — when each is used](https://www.broadnet.me/answers/what-is-encoding-gsm-7-ucs-2)
- [UDH — User Data Header in SMS explained](https://www.broadnet.me/answers/what-is-udh-sms)
- [SMS pricing per MT — what you're actually paying for](https://www.broadnet.me/answers/sms-pricing-per-mt-explained)
- [SMS segment calculator](https://www.broadnet.me/tools/sms-segment-calculator)
- [SMS API](https://www.broadnet.me/products/sms-api)
- [Bulk SMS](https://www.broadnet.me/products/bulk-sms)
