SMS Character Limits, Segments, and Encoding Explained

Message customers3 min readUpdated 2026-03-12

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

MessageEncodingSegmentsCredits
"Your order ships tomorrow. Track it here: https://example.com/track" (71 chars)GSM-711
"Your order ships tomorrow! 🚚 Track it here: https://example.com/track" (72 chars)Unicode22

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

  1. Avoid emojis in transactional messages (confirmations, reminders, OTPs).
  2. Use straight quotes (' and ") not curly quotes (' ' " ").
  3. Use URL shorteners for long tracking links.
  4. Preview before sending — check the segment counter in the compose area.
  5. Use MMS for messages that need more space. MMS supports 1,600 characters plus media.

Was this helpful?