TextPreflightGuide
GSM-7 vs UCS-2

Same message. Very different bill.

SMS encoding is selected for the whole message. One unsupported character can move every character from the GSM-7 budget into the smaller UCS-2 budget.

GSM-7 in plain language

GSM-7 is the compact alphabet used for many Latin-script SMS messages. Its default alphabet covers common letters, digits and punctuation. A separate extension table adds characters such as {, }, [, ], ^ and ; each uses an escape plus the character and therefore consumes two septets.

When UCS-2 takes over

If a message contains a character outside the supported GSM-7 tables, providers generally encode the entire message as UCS-2. Curly quotes, em dashes, many accented characters, CJK text and emoji are common triggers. The single-segment capacity then drops from 160 GSM-7 septets to 70 UCS-2 code units.

PropertyGSM-7UCS-2
Typical single-part capacity160 septets70 units
Typical multipart capacity153 per part67 per part
Common useBasic Latin SMSUnicode text
Cost riskExtension chars count doubleSmaller segment capacity
UCS-2 is not automatically a mistake.

It is necessary for many languages and symbols. The goal is to detect it intentionally and forecast the correct segment count—not to remove meaningful content blindly.

Use encoding-aware rules

See the encoding decision.

Paste real copy into TextPreflight and inspect the exact code points, segment boundary and safe replacements.

Technical references