Multilingual SMS
Send messages in your customers' preferred language to increase engagement and build trust. When you operate across regions with multiple languages, multilingual SMS ensures your communication remains consistent. In regulated markets, localized communication may be required by law. Infobip SMS supports a wide range of encodings to ensure your messages are delivered correctly across different languages and regions.
Technical considerations [#technical-considerations]
Sending SMS in multiple languages introduces technical considerations:
- Character sets: Different languages require different characters. While the GSM 7-bit alphabet covers basic Latin characters, many languages require Unicode encoding.
- Encoding: Using Unicode (UCS-2) reduces the maximum characters per message (from 160 to 70), which can lead to concatenation and increased costs.
- Unicode compatibility: Some carriers and devices may not support all Unicode character ranges, which can affect message delivery or cause character substitution.
Character encoding in SMS [#character-encoding]
SMS messages can be sent in different character encodings depending on the language and characters used. The choice of encoding affects message length, concatenation, delivery, and cost.
Supported languages and regions [#supported-languages-and-regions-character-encoding]
The following table shows which languages and regions each encoding typically covers.
| Encoding | Supported languages | Typical regions |
|---|---|---|
| GSM 7-bit alphabet | English, German, Italian, Spanish (unaccented), Portuguese, and other Western European languages | Europe, North America, Latin America |
| Unicode (UCS-2) | Arabic, Cyrillic (Russian, Serbian, and more), Greek, Chinese, Japanese, Korean, Hindi, and accented Latin scripts | Middle East, Eastern Europe, Asia, Africa |
Use GSM encoding when your message contains only characters from the 7-bit alphabet to maximize length and minimize cost. Use Unicode when your message requires characters outside GSM, such as Arabic, Cyrillic, or Asian scripts. Always test messages in target languages to ensure correct encoding, delivery, and display across devices.
GSM 7-bit alphabet [#gsm-7bit-character-encoding]
The GSM 7-bit alphabet is the default encoding for SMS.
Supported characters: Basic Latin letters (A-Z, a-z), numbers, and common punctuation. Extended characters (such as ^, {, }, €, [ ]) use an escape mechanism that reduces message length.
Typical languages: English, Spanish (without accents), German, Italian, and many Western European languages.
Message length: Up to 160 characters per single-part SMS. When extended characters are included, fewer than 160 characters may fit.
Basic characters:
Extended characters (require escape sequence, reduce message length):
Concatenated GSM messages [#concatenated-gsm-character-encoding]
If a message is longer than 160 characters, it is split into multiple parts (concatenation). Each part can contain up to 153 characters because additional bytes are reserved for headers that reassemble the message on the recipient's device.
Unicode (UCS-2) [#unicode-character-encoding]
Unicode encoding is used when characters outside the GSM 7-bit alphabet are included in the message.
| Feature | Description |
|---|---|
| Supported characters | Almost all global scripts, such as Arabic, Cyrillic, Chinese, Hindi, Greek, and accented Latin characters |
| When it is used | Automatically applied when the message contains a character not supported by GSM 7-bit |
| Message length | Up to 70 characters per single-part SMS |
Concatenated Unicode messages [#concatenated-unicode-character-encoding]
If a Unicode message is longer than 70 characters, it is split into multiple parts. Each part can contain up to 67 characters because of the concatenation header.
Delivery and cost implications [#delivery-cost-character-encoding]
Encoding choice affects message length, delivery, and cost in the following ways.
| Feature | Description |
|---|---|
| Message length | Unicode messages carry fewer characters per part than GSM messages. This often results in more parts being sent |
| Delivery | Both GSM and Unicode messages are supported globally, but some carriers and devices may not support all Unicode character ranges, which can affect delivery or cause character substitution |
| Cost | Each SMS part is billed separately. Sending Unicode often increases the total cost because more parts are required |
Test your messages to confirm whether they use GSM or Unicode encoding. Where possible, avoid special characters that trigger Unicode if you want to reduce cost. Use transliteration to support non-Latin scripts while keeping GSM encoding.
Reducing encoding impact [#reducing-encoding-impact]
When a message includes any character not supported by GSM-7, the entire message is encoded in Unicode, reducing the maximum length to 70 characters. This single non-GSM character forces the whole message into Unicode encoding.
To reduce encoding impact and preserve standard message length, Infobip offers two approaches:
National Language Identifier [#national-language-identifier-reducing-encoding-impact]
National Language Identifier (NLI) is an encoding technology in the GSM standard that allows SMS messages to identify the language of the content. It indicates that the message contains language-specific characters that must be delivered as the original text, without defaulting to full Unicode.
NLI-encoded messages can contain up to 155 characters (five characters are reserved for metadata that informs the receiver's device about the selected language and how to display the SMS).
Supported languages:
- Turkish (TR)
- Portuguese (PT)
- Spanish (ES)
- AUTODETECT: Automatically detects the language from message content. Detection is limited to Turkish, Portuguese, and Spanish. If no supported language is detected, the message falls back to standard encoding.
Turkish supported characters:
Portuguese supported characters:
Spanish supported characters:
You can configure NLI through the API or the web interface. In the API, include the languageCode parameter in your SMS request. In the web interface, select the appropriate NLI character set (Turkish NLI, Portuguese NLI, or Spanish NLI). See Send SMS message for API details.
Important notes:
- Some networks might not support the Language feature. This functionality may not work for all destinations. For example, a Turkish message sent through a Chinese provider might not display correctly on the recipient's device.
- Non-standard characters might cause messages to be encoded in Unicode, reducing available characters.
- Always test messages to confirm encoding.
Use NLI when sending messages in Turkish, Portuguese, or Spanish with language-specific characters and you need more than 70 characters.
SMS transliteration [#sms-transliteration-reducing-encoding-impact]
SMS transliteration converts text written in a native script into a Latin-script version of the same message. It replaces any special (unsupported) characters with similar GSM-7-compatible ones, ensuring that the maximum of 160 characters can be used instead of only 70.
Transliteration can alter the appearance of the message. Preview your message to explore all options before sending.
Supported languages:
- Turkish
- Greek
- Cyrillic
- Serbian Cyrillic
- Bulgarian Cyrillic
- Central European
- Portuguese
- Colombian
- Baltic
- NON_UNICODE
When you specify the desired output alphabet, unsupported characters are converted differently depending on which character is most appropriate for the selected language. Any character that is not recognized by the selected language and is not part of the GSM alphabet is replaced by a dot (.).
Greek supported characters for transliteration:
Cyrillic supported characters for transliteration:
Turkish transliteration character mapping:
| Original | Transliterated |
|---|---|
| Ö ö | O o |
| Ç ç | C c |
| Ğ ğ | G g |
| İ ı | I i |
| Ş ş | S s |
| Ü ü | U u |
NON_UNICODE transliteration:
Converts any Unicode text to GSM 7-bit alphabet by mapping characters to closest GSM equivalent. Unmappable characters become dots (.).
Other language transliterations (Portuguese, Colombian, Baltic, Serbian Cyrillic, Bulgarian Cyrillic, Central European) follow similar character mapping patterns to preserve readability while staying within GSM 7-bit constraints.
Example NON_UNICODE transliteration:
| Before | After |
|---|---|
| Original: "©™ø- ˆ¨л- ˙˚λ- ∆ƒ∂" | "..ø- ..l- ..A- ..." |
Example Greek transliteration:
| Before | After |
|---|---|
| Ως Μεγαρικό ψήφισμα είναι γνωστή η απόφαση της Εκκλησίας του δήμου των Αθηναίων (πιθανόν γύρω στο 433/2 π.Χ.) να επιβάλει αυστηρό και καθολικό εμπάργκο στα | ΩΣ MEΓAPIKO ΨHΦIΣMA EINAI ΓNΩΣTH H AΠOΦAΣH THΣ EKKΛHΣIAΣ TOY ΔHMOY TΩN AΘHNAIΩN (ΠIΘANON ΓYPΩ ΣTO 433/2 Π.X.) NA EΠIBAΛEI AYΣTHPO KAI KAΘOΛIKO EMΠAPΓKO ΣTA |
By using transliteration, Greek lowercase letters that are not supported in the GSM alphabet are converted to uppercase letters that are supported. The message remains readable while preserving the 160-character limit.
You can configure transliteration through the API or the web interface. In the API, include the transliteration parameter with the desired output alphabet (TURKISH, GREEK, CYRILLIC, and more). In the web interface, select the appropriate character set from the available options. See Send SMS message for API details.
Use transliteration when sending messages in Greek, Cyrillic, Turkish, or other supported languages and you need the full 160-character limit without splitting into Unicode parts.
Send SMS message endpoint
Implement NLI and transliteration via API (also available through the web interface).
Send and track
Learn about SMS sending and tracking.
Communication options
Understand one-way and two-way SMS.
Send your first SMS
Get started with a quick tutorial.