Encoding & Optimization for Multilingual SMS
Use GSM-7-compatible characters to keep SMS broadcasts within fewer segments and control delivery costs.
When you send a broadcast through Communications Platform, the API, or SFTP, the characters in the message determine its encoding, segment capacity, and billable segment count. One character outside the GSM-7 character set can switch the entire message to Unicode (UCS-2), reducing the capacity of each segment.
SMS character encoding
SMS uses encoding standards to represent and transmit characters. The character set in your message determines:
- The encoding: GSM-7 or Unicode (UCS-2).
- The character capacity of each SMS segment.
- The number of billable segments when a message exceeds that capacity.
Check your message characters before you send a high-volume broadcast. Doing so helps you avoid unexpected segmentation, billing, and delivery behavior.
GSM-7 encoding
GSM-7 is a 7-bit SMS character encoding. If every character in your message is part of GSM-7, including its extended character set, the system sends the message using GSM-7.
A single GSM-7 segment holds up to 160 characters. If the message exceeds 160 characters, the system sends concatenated SMS (multiple linked segments). Each concatenated segment typically holds 153 characters because concatenation metadata uses part of the payload.
The following table lists the GSM-7 characters. Character display can vary by handset compatibility and font support.
| @ | Δ | S | P | K | 0 | i | P |
|---|---|---|---|---|---|---|---|
| p | £ | _ | ! | Ä | 1 | A | Q |
| q | $ | Φ | " | k | r | b | R |
| R | C | æ | - | = | M | Ñ | m |
| 2 | ¥ | Γ | # | ä | 3 | C | S |
| s | è | ∧ | ¤ | ø | 4 | D | T |
| t | é | Ω | % | Æ | 5 | E | u |
| e | ù | Π | & | , | 6 | F | V |
| v | ì | Ψ | ' | < | 7 | G | W |
| w | ò | Σ | ( | L | 8 | H | X |
| x | Ç | Θ | ) | Ö | 9 | I | Y |
| y | L | F | Ξ | I | * | : | J |
| j | z | Ø | E | ö | S | C | + |
| Å | ß | . | > | N | Ü | n | ü |
| É | / | ? | O | § | o | à |
The following GSM-7 characters require an escape sequence. Count each of these characters as two characters when you calculate message length:
^, {, }, \, [, ], ~, |, €
Unicode (UCS-2) encoding
If your message contains a character that GSM-7 does not support, the system switches the entire message to Unicode (UCS-2).
A single Unicode segment holds up to 70 characters. Concatenated Unicode messages typically hold 67 characters per segment because concatenation metadata uses part of the payload.
One non-GSM-7 character can reduce segment capacity and increase your segment count and delivery cost.
GSM-7 versus Unicode (UCS-2)
Encoding directly affects message segmentation, delivery, and billing. The following table compares GSM-7 and Unicode (UCS-2):
| Encoding Type | Character Set | Max Characters (Single SMS) | Characters per Segment (Concatenated) | Common Use Cases |
|---|---|---|---|---|
| GSM-7 | Basic Latin alphabet, digits, and selected punctuation marks. | 160 | 153 | Standard English or Latin-based languages without accents or special symbols. |
| Unicode (UCS-2) | Supports all global scripts, symbols, and emojis. | 70 | 67 | Messages that include non-Latin characters, accented letters, emojis, or complex symbols. |
The system automatically selects the encoding from the characters in your message. One non-GSM-7 character switches the entire message to Unicode (UCS-2).
The following table identifies characters that commonly trigger Unicode or use two GSM-7 character units. Use the suggested replacements when keeping the message within fewer segments is more important than preserving the original typography.
| Character | Description | Recommended Replacement | Example |
|---|---|---|---|
| á, à, â, ä, ã, å | Accented "a" variations | a | "mañana" → "manana" |
| é, è, ê, ë | Accented "e" variations | e | "éxito" → "exito" |
| í, ì, î, ï | Accented "i" variations | i | "país" → "pais" |
| ó, ò, ô, ö, õ | Accented "o" variations | o | "avión" → "avion" |
| ú, ù, û, ü | Accented "u" variations | u | "tú" → "tu" |
| ñ | Spanish "ñ" | n | "niño" → "nino" |
| ç | Cedilla "c" | c | "façade" → "facade" |
| € | Euro symbol | EUR | "€50" → "EUR 50" |
| –, — | En dash / Em dash | - | Replace "–" with "-" |
| ', ', ", " | Curly quotation marks | ' , " | Replace "smart quotes" with straight ones |
| … | Ellipsis | ... | Use three dots |
| Emojis / symbols | Pictograms or icons | Remove or use text equivalents | "✔ Confirmed" → "Confirmed" |
Plain-text equivalents can change the tone or meaning of a message, particularly in Spanish. Balance readability and localization requirements against segment and cost targets.
Optimize your SMS messages
Before you send a broadcast:
- Keep GSM-7 messages at 160 characters or fewer to send one segment. Messages longer than 160 characters are sent as concatenated SMS, with roughly 153 characters available in each segment.
- Check for non-GSM-7 characters, including emojis, smart punctuation, and unsupported accented characters. Any one of these characters switches the whole message to Unicode (UCS-2).
- Keep Unicode messages at 70 characters or fewer to send one segment. Concatenated Unicode messages hold roughly 67 characters per segment.
- Replace nonessential special characters with the plain-text equivalents shown above when reducing segments is a priority.
- Review segment counts before sending high-volume broadcasts. Each additional segment is a billable unit.
For example, a 140-character GSM-7 message fits in one segment. Adding an emoji changes the encoding to Unicode, so the message requires three segments: 67 + 67 + 6 characters. That change can triple delivery cost for the same audience.
Updated 10 days ago
