SMS Character Limits, Segments, and Encoding Explained
SMS Character Limits, Segments, and Encoding Explained
Every SMS has a character limit. Go over it, and your message splits into multiple segments — each billed separately. Understanding how encoding works helps you write messages that stay within a single segment and keep costs predictable.
The Basics
- One SMS segment = 160 characters (GSM-7 encoding)
- Multi-part messages = 153 characters per segment (7 characters reserved for reassembly header)
- Unicode messages = 70 characters per segment (67 for multi-part)
- Maximum segments = 10 (1,600 characters GSM-7 or 700 characters Unicode)
GSM-7 Character Set
These characters use standard GSM-7 encoding (160 characters per segment):
Letters: A–Z, a–z Numbers: 0–9 Symbols: @ £ $ ¥ è é ù ì ò Ç Ø ø Å å Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ ^ { } [ ] ~ | € \ ! " # ¤ % & ' ( ) * + , - . / : ; < = > ? ¡ ¿ § _ Whitespace: Space, newline
Extended GSM-7 characters
These characters are in the GSM-7 set but count as 2 characters each:
| ^ € { } [ ] ~ \
A message with one € symbol uses 2 of your 160-character budget.
When Unicode Kicks In
A single character outside the GSM-7 set switches the entire message to Unicode (UCS-2). Your limit drops from 160 to 70 characters per segment.
Common Unicode triggers:
- Emojis: 😀 👍 ✅ ❤️ (each emoji uses 2 Unicode characters)
- Smart quotes: " " ' ' (curly quotes from word processors)
- Em dashes: —
- Non-Latin scripts: Chinese, Arabic, Hindi, Thai, Korean, Japanese
- Some math symbols: ≥ ≤ ≠ ÷
The cost impact
| Message | Encoding | Segments | Credits |
|---|---|---|---|
| "Your order ships tomorrow. Track it here: https://example.com/track" (71 chars) | GSM-7 | 1 | 1 |
| "Your order ships tomorrow! 🚚 Track it here: https://example.com/track" (72 chars) | Unicode | 2 | 2 |
Adding one emoji doubled the segment count.
How to Check Before Sending
JustCall's compose area shows:
- Character count — updates as you type
- Segment count — shows how many segments this message will use
- Encoding indicator — flags when Unicode is detected
If you see the segment count jump, check for hidden Unicode characters. Common culprits: text pasted from Word, Google Docs, or email (smart quotes, em dashes).
Tips for Staying Within Limits
- Avoid emojis in transactional messages (confirmations, reminders, OTPs).
- Use straight quotes (' and ") not curly quotes (' ' " ").
- Use URL shorteners for long tracking links.
- Preview before sending — check the segment counter in the compose area.
- Use MMS for messages that need more space. MMS supports 1,600 characters plus media.