GSM-7 vs UCS-2: SMS Encoding and Concatenation Explained

GSM-7 and UCS-2 are the two character encodings an SMS can use. GSM-7 covers the Latin alphabet and symbols and fits 160 characters per segment, while UCS-2 carries full Unicode and drops the limit to 70 characters per segment, so one emoji can turn a single message into three billed segments. Understanding which encoding a message uses is how you control character limits, costs, and delivery on any SMS modem.

This guide explains the two encodings, what triggers UCS-2, how segments and billing work, and the practical rules for keeping messages cheap and complete.

The Two Encodings

GSM-7 is the original SMS alphabet: uppercase and lowercase Latin letters, digits, and a set of punctuation and symbols defined by the standard. Because each character fits in 7 bits, a standard segment carries 160 characters, and most marketing and notification messages in English and other Western languages never leave GSM-7.

UCS-2 is a 16-bit Unicode encoding that represents characters outside the GSM-7 set: accented scripts, Cyrillic, Arabic, Chinese, emoji, and newer symbols. The wider character size cuts the per-segment capacity to 70 characters, which is why encoding is a cost question, not just a display question.

The important nuance is that the modem or gateway decides the encoding from the content. A message is sent in GSM-7 when every character fits the alphabet, and the sender automatically switches to UCS-2 the moment one unsupported character appears, so a single emoji changes the billing for the whole message.

A useful way to think about GSM-7 is as a character whitelist: if every character in the message is on the list, the message stays at 160; if anything is missing from the list, the message moves to the 70-character tier. The whitelist includes the basic Latin alphabet, digits, and common punctuation, but not the extended symbols people add for style.

Encoding also affects capacity on an SMS modem pool: each segment consumes one SIM transaction, so a campaign that doubles its segment count doubles the SIM throughput and the pacing load. For operators near their per-SIM limits, encoding control is capacity planning, not just copy editing.

See also  How Is International SMS Traffic Regulated, Routed, and Secured?

What Triggers UCS-2

The trigger is simple to state and easy to miss: any character outside the GSM-7 set switches the entire message to UCS-2. That includes emoji, curly quotes in place of straight ones, symbols such as the euro sign in some contexts, and non-Latin scripts.

Common culprits in business messaging are emoji in marketing copy, smart punctuation inserted by word processors, and characters such as the en dash or ellipsis that look ordinary but sit outside the alphabet. A template that passes review can quietly switch encoding when a field pulls in a special character.

Content Encoding Characters per segment
Plain English, digits, standard punctuation GSM-7 160
Accented Latin, most European scripts GSM-7 or UCS-2 160 or 70
Cyrillic, Arabic, Chinese, full Unicode UCS-2 70
Emoji and newer symbols UCS-2 70
Long messages Concatenated Multiple segments

The practical rule for testers: check every message in the actual sending software before launch, because the character set is judged by the message as submitted, not by the template as designed.

Numbers and links behave predictably, but not always helpfully: digits and URLs stay in GSM-7, yet a long URL counts against the character limit and can push a message into a second segment. Shortened links reduce that pressure, and segment counts should be checked with the final link in place.

How Segments and Billing Work

Carriers count segments, not logical messages. A GSM-7 message of 160 characters is one segment; 161 to 306 characters becomes two segments; and UCS-2 messages count every 70 characters as a segment, with concatenation used to reassemble long messages on the phone.

Concatenation adds a small overhead: each segment of a multi-part message reserves a few characters for the segment header, so a GSM-7 long message effectively fits 153 characters per part and a UCS-2 long message about 67. The practical result is that a 300-character note can cost two segments, and a short message with two emoji can cost three.

Billing follows segments, so the cost of a message is the segment count multiplied by the rate per segment, on any platform from a USB SMS modem to a full gateway. Operators who track cost per delivered message must therefore track segments per message, not messages sent.

See also  VoIP Gateway with SIM Bank: Designing a Centralized Number Pool for Voice

Delivery and billing interact: a message sent as three segments either arrives whole or not at all, depending on the carrier's handling of concatenated messages, so segment count is also a delivery question for older devices. Keeping messages within one segment improves both cost and compatibility.

The segment overhead figures matter for templates: a 160-character GSM-7 message is one segment, but a 161-character message is two, so trimming a few characters can halve the cost. Keep templates under the boundary with a margin for variable fields.

Controlling Encoding Costs

The first control is copy discipline: keep marketing messages in GSM-7 by avoiding emoji and unusual punctuation, and reserve UCS-2 for languages that genuinely need it. For most Western markets, a style rule that bans emoji from templates saves real money at volume.

The second control is testing. Send the exact template with real data through the modem software, inspect the reported segment count, and check the character list in the encoder settings; a message that suddenly bills as two segments is usually a hidden special character, and the fix is a copy edit, not a budget change.

The third control is planning for multilingual markets. If your audience includes Cyrillic, Arabic, or Chinese, budget for 70-character segments and shorter templates, and use transliteration or language-specific templates where quality allows, because the encoding decision is per message and per market.

Software settings matter as much as copy. Some platforms expose an encoding selector or a transliteration option that converts characters to GSM-7 equivalents; when the conversion is quality-safe, it is a legitimate cost control, but review the result because transliteration can change meaning in names and addresses.

Monitoring catches regressions: track the average segment count per campaign in the same report as delivery, and alert when the average rises, because a template edit that introduces a special character shows up in the numbers before anyone notices in the copy.

Telarvo Expert Views

Encoding surprises are the cheapest problem to prevent and the most common to find after a campaign. We tell operators to test the exact message with real data and read the reported segment count, because a single smart quote in a template can double the bill without changing anything visible on the phone.

— Messaging Solutions Engineer, Telarvo Store

Validation note: character limits follow the SMS standard; actual billing and segment handling can vary by carrier and platform.

Conclusion

Encoding is the hidden lever of SMS cost: GSM-7 keeps messages at 160 characters per segment, UCS-2 drops to 70, and one unsupported character switches the whole message, so template discipline and testing control the bill.

See also  Setting Up a Parent's Phone for SMS Abroad: A Simple Family Travel Checklist

Key Takeaways for B2B Buyers

Keep Western-language templates in GSM-7, test the exact message with real data, count segments rather than messages when budgeting, and plan 70-character templates for Unicode markets.

Questions to Ask Before Committing

Ask how the modem software reports segment count, whether the encoder can be inspected, how long messages are handled, and what the software reports per delivered message.

Ask Telarvo Store to check the SMS modem software settings for segment reporting before you launch.

FAQs

Why does one emoji make my SMS cost more?
An emoji is outside the GSM-7 alphabet, so the whole message switches to UCS-2 and the per-segment limit drops from 160 to 70 characters, which can split a short message into multiple segments.

What is the SMS character limit?
160 characters per segment in GSM-7 and 70 in UCS-2; long messages are concatenated into multiple segments with a small overhead per part.

Can I force GSM-7 for a message with special characters?
Not safely. The encoding is chosen from the content, and forcing GSM-7 on unsupported characters can corrupt the message; fix the content instead.

How do I check which encoding my message uses?
Send the exact message with real data through your software and read the reported segment count; most modems and gateways display it.

Do concatenated messages always arrive in order?
Most modern phones reassemble them correctly, but some older devices and carriers handle concatenation inconsistently; keeping important messages within one segment is the safest approach.

Sources

Your Guide to VOIP, SMS Gateways, and Telecom Trends - Telarvo Store Blog