BroadNet
Free developer tool · runs in your browser

GSM-7 / Unicode checker.

Paste any SMS text to classify every character as GSM-7 basic, GSM-7 extension or Unicode-only, and see exactly which characters force the whole message into UCS-2. Fix those and you stay on the 160-character GSM-7 budget. Nothing leaves your device.

43 characters
Try an example
Resulting encoding
UCS-270 chars per single SMS
GSM-7 basic
37
Extension
0
Unicode-only
6
These characters force UCS-2
’—“”…

Replace or remove these to switch the whole message back to GSM-7 and more than double the per-part character budget.

Need segment counts and cost? Open the SMS segment calculator.
Character-by-character breakdown
Per-character GSM-7 and Unicode classification
#CharacterCode pointClassificationUnits
1WU+0057GSM-7 basic1
2eU+0065GSM-7 basic1
3’U+2019Unicode-only1
4vU+0076GSM-7 basic1
5eU+0065GSM-7 basic1
6spaceU+0020GSM-7 basic1
7uU+0075GSM-7 basic1
8pU+0070GSM-7 basic1
9dU+0064GSM-7 basic1
10aU+0061GSM-7 basic1
11tU+0074GSM-7 basic1
12eU+0065GSM-7 basic1
13dU+0064GSM-7 basic1
14spaceU+0020GSM-7 basic1
15oU+006FGSM-7 basic1
16uU+0075GSM-7 basic1
17rU+0072GSM-7 basic1
18spaceU+0020GSM-7 basic1
19tU+0074GSM-7 basic1
20eU+0065GSM-7 basic1
21rU+0072GSM-7 basic1
22mU+006DGSM-7 basic1
23sU+0073GSM-7 basic1
24spaceU+0020GSM-7 basic1
25—U+2014Unicode-only1
26spaceU+0020GSM-7 basic1
27sU+0073GSM-7 basic1
28eU+0065GSM-7 basic1
29eU+0065GSM-7 basic1
30spaceU+0020GSM-7 basic1
31“U+201CUnicode-only1
32wU+0077GSM-7 basic1
33hU+0068GSM-7 basic1
34aU+0061GSM-7 basic1
35tU+0074GSM-7 basic1
36’U+2019Unicode-only1
37sU+0073GSM-7 basic1
38spaceU+0020GSM-7 basic1
39nU+006EGSM-7 basic1
40eU+0065GSM-7 basic1
41wU+0077GSM-7 basic1
42”U+201DUnicode-only1
43…U+2026Unicode-only1

The short answer

Which characters force a message into UCS-2?

Any character that is not in the GSM-7 basic or extension tables forces the whole SMS into UCS-2. In practice that means smart or curly quotes, em dashes, the ellipsis character, many accented letters, and every emoji, Arabic, Cyrillic or CJK character. Because SMS uses one encoding per message, a single such character drops the per-segment budget from 160 to 70 characters.

The three character classes

GSM-7 basic, GSM-7 extension and Unicode-only character classes
ClassUnitsExamples
GSM-7 basic1A–Z a–z 0–9 space . , ? ! and common European letters
GSM-7 extension2€ { } [ ] ~ | ^ \
Unicode-only (UCS-2)1 (16-bit)emoji · Arabic · Cyrillic · CJK · “ ” — …

Frequently asked questions

What is the GSM-7 basic character set?

GSM-7 is the 7-bit default alphabet from the GSM 03.38 standard. Its basic table covers uppercase and lowercase Latin letters, digits, common punctuation and a small European set. Each basic character occupies one 7-bit unit, so a single SMS holds 160 of them.

What are GSM-7 extension characters?

A small set of characters — the euro sign and brackets, braces, backslash, tilde, caret and pipe ( € { } [ ] ~ | ^ \ ) — live in the GSM-7 extension table. They are still GSM-7, but each is sent as an escape character plus the character itself, so it counts as two units instead of one.

Which characters force UCS-2 encoding?

Any character outside the GSM-7 basic and extension tables. Common culprits are smart or curly quotes, em dashes, the ellipsis character, many accented letters, and every emoji, Arabic, Cyrillic or CJK character. One such character anywhere switches the whole message to double-byte encoding.

Why does one non-GSM-7 character change the whole message?

SMS uses a single encoding per message. If even one character cannot be represented in GSM-7, the entire message must be sent as UCS-2 so that character survives. That drops the per-segment budget from 160 characters to 70, which is why a stray curly quote can double or triple your segment count.

How is this different from the SMS segment calculator?

The segment calculator reports the encoding, segment count and cost for a whole message. This checker goes character by character so you can pinpoint the exact offending characters, replace them and bring the message back to GSM-7. Use them together.

Ready to send at scale?

BroadNet ships a Bearer-token REST API, direct SMPP 3.4 binds, delivery webhooks and an official TypeScript SDK across 200+ countries.