Social Media Character Counter · 6 min read
SMS Character Limits Explained: GSM-7, Unicode, and Multi-Part Messages
A standard SMS is 160 characters — unless you use special characters or emoji, which drops the limit to 70. Here is exactly why, how GSM-7 and Unicode-16 encoding work, and what happens when your message is too long.
The Origin of 160 Characters
The 160-character limit for a standard SMS message was not chosen by calculating the optimal message length for human communication. It was determined by Friedhelm Hillebrand, a German engineer at Deutsche Telekom, and Bernard Ghillebaert of France Telecom, who in 1985 were designing the messaging component of the GSM (Global System for Mobile Communications) mobile standard.
Hillebrand sat at his typewriter and tested various message types: postcards, typical telegram messages, and messages on bulletin boards. He typed them and counted characters. His conclusion: the vast majority of useful short messages — the kind people would want to send and receive — fit within 160 characters. The limit was chosen to accommodate real-world message needs within the tight technical constraints of the signalling channels available in GSM networks.
The 160 characters are packed into the signalling overhead of the GSM network's control channel — the same bandwidth used to set up calls, handle network registration, and manage cell handoffs. No dedicated data channel is required for an SMS. The 160 characters are squeezed into 1,120 bits of available signalling data, encoded using GSM-7.
GSM-7: The 7-Bit Encoding
Standard SMS uses GSM-7 encoding, also called the GSM 7-bit default alphabet. Each character in GSM-7 is encoded as 7 bits rather than the 8 bits (1 byte) used for standard ASCII or the 16+ bits used for Unicode.
GSM-7 covers 128 characters:
- All 26 uppercase and 26 lowercase English letters (A–Z, a–z)
- Digits 0–9
- Standard punctuation: ! " # % & ' ( ) * + , - . / : ; < = > ? @ space
- Some national characters: £, $, ¥, è, é, ù, ì, ò, Ç, Ø, ø, Å, å, Δ, _, Φ, Γ, Λ, Ω, Π, Ψ, Σ, Θ, Ξ
- An extension table for additional characters
Because GSM-7 uses 7 bits per character and SMS provides 1,120 bits, the math works out to exactly 160 characters per standard SMS (1120 ÷ 7 = 160).
Extended characters — those in the GSM-7 extension table, including [, ], {, }, ~, |, \, the euro sign €, and a few others — use 2 characters' worth of space (14 bits each). This means a single euro sign (€) or a single opening bracket ([) effectively counts as two characters.
Unicode SMS: The 70-Character Limit
When a message contains any character that is not in the GSM-7 character set — an emoji, an accented character not in GSM-7, a character from any non-Latin script — the entire message must be encoded using UCS-2 (a fixed-width Unicode encoding, effectively UTF-16 without surrogates for the BMP).
UCS-2 uses 16 bits (2 bytes) per character. With 1,120 bits available: 1120 ÷ 16 = 70 characters maximum.
This is the reason a single emoji drops your SMS limit from 160 to 70 characters. The emoji forces Unicode encoding for the entire message, and Unicode characters cost twice as many bits as GSM-7 characters.
Characters that commonly trigger UCS-2 encoding:
- Any emoji: 😊, 👍, ❤️, etc.
- Curly quotation marks: " " ' ' (as opposed to straight quotes " ')
- En dash (–) and em dash (—) (hyphens are fine)
- Any accented characters not in GSM-7: â, ê, î, ô, û, ñ, ü, ä, ö, etc.
- Any non-Latin script: Arabic, Hebrew, Cyrillic, Chinese, Japanese, Korean
- The multiplication sign (×) and division sign (÷)
Multi-Part SMS (Concatenated Messages)
When a message exceeds the single-message limit (160 GSM-7 characters or 70 UCS-2 characters), the message is split into multiple SMS messages — called concatenated SMS or multi-part messages.
Concatenated messages use a header in each part to tell the receiving device how to reassemble them in the correct order. This header uses 6 bytes (for the most common implementation), reducing the available payload:
- GSM-7 multi-part messages: 153 characters per part (not 160)
- UCS-2 multi-part messages: 67 characters per part (not 70)
The receiving device reassembles the parts and displays them as a single message. However, each part is billed separately by most carriers — a 300-character GSM-7 message is two SMS charges, not one.
MMS: A Different Standard
MMS (Multimedia Messaging Service) is a separate standard from SMS. MMS supports images, audio, video, and longer text messages (up to approximately 1,600 characters in practice, though the standard allows more). MMS is billed differently from SMS and requires a data connection to deliver (whereas SMS uses the signalling channel and does not require mobile data).
RCS (Rich Communication Services), the next-generation successor to SMS being deployed by carriers globally, removes character limits entirely and supports images, read receipts, typing indicators, and group chats natively — similar to WhatsApp or iMessage, but built into the phone's native messaging app.
Practical Implications
For business SMS campaigns and automated messages, the character encoding has real cost implications. A campaign sending 1 million messages at 320 GSM-7 characters each costs twice as much as a 160-character version. Avoiding the euro sign, curly quotes, and em dashes keeps messages in GSM-7 encoding and within single-message limits.
For personal use: if your SMS app shows "3 messages" for what seems like a short text, check for an emoji, curly quotation mark, or em dash that switched the encoding to UCS-2 and is splitting your message into multiple 67-character parts.
References
- GSM Association. (1987–2003). GSM 03.38: Alphabets and language-specific information. ETSI.
- ETSI. (2003). 3GPP TS 23.038: Technical Specification for Alphabets and Language-Specific Information. ETSI.
- Hillebrand, F., Farmer, D., & Troung, B. (2010). Short Message Service (SMS): The Creation of Personal Global Text Messaging. Wiley.
- Unicode Consortium. (2023). The Unicode Standard, Version 15.1. unicode.org.
- Twilio. (2023). What is the maximum length of an SMS message? twilio.com/docs.