BroadNet
Free developer tool · runs in your browser

Message encoding sanitizer.

One smart quote, en dash or invisible non-breaking space can silently flip an SMS from GSM-7 to UCS-2 — halving the per-segment budget from 160 to 70 characters and doubling the cost. Paste your message: this tool finds every offending character, explains it, and hands you a cleaned GSM-7-safe version. Nothing leaves your device.

65 characters
Try an example
Before
UCS-2
Characters65
Segments1
70 / 67 chars per part
After
UCS-2
Characters67
Segments1
70 / 67 chars per part
Segment & cost impact

Some characters (emoji or letters from another script) have no GSM-7 equivalent, so the cleaned message stays on UCS-2. Remove them to reach GSM-7 and the full 160-character budget.

Heads up: this message contains look-alike letters from another alphabet. They are visually identical to Latin letters but force Unicode. Replacing them is a suggestion — turn on the toggle only if the text is meant to be Latin.

Want the full segment and cost breakdown? Open the SMS segment calculator.
Just want to classify each character without fixing it? Open the GSM-7 / Unicode checker.
Cleaned message
We've updated our plan - see what's new... Reply "YES". Prіce: €5 🎉

Replacements applied. Review it, then copy.

Characters forcing Unicode
7 distinct characters detected
Characters forcing Unicode
CharCode pointNameTypeWhy it forces UnicodeGSM-7-safe replacement
’×2U+2019RIGHT SINGLE QUOTATION MARKSmart quoteCurly / typographic quotation mark. Not in the GSM-7 alphabet, so it forces the whole message to UCS-2."'"
—U+2014EM DASHDashTypographic dash (en/em dash or minus sign). GSM-7 only has the plain hyphen-minus, so this forces UCS-2."-"
…U+2026HORIZONTAL ELLIPSISEllipsisSingle ellipsis character. GSM-7 has no ellipsis, so it forces UCS-2. Three plain dots are equivalent."..."
“U+201CLEFT DOUBLE QUOTATION MARKSmart quoteCurly / typographic quotation mark. Not in the GSM-7 alphabet, so it forces the whole message to UCS-2."""
”U+201DRIGHT DOUBLE QUOTATION MARKSmart quoteCurly / typographic quotation mark. Not in the GSM-7 alphabet, so it forces the whole message to UCS-2."""
іU+0456CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN IHomoglyphA letter from the Cyrillic or Greek alphabet that looks identical to a Latin letter. Invisible to the eye but forces UCS-2 — a classic cause of a 'why is this Unicode?' mystery."i"(kept — homoglyph replacement is off)
🎉U+1F389EmojiEmojiEmoji have no GSM-7 representation at all. There is no safe replacement — remove it, or accept UCS-2 encoding for this message.No GSM-7 equivalent

Everything runs locally in your browser. Your text is never uploaded.

The short answer

How do I stop a message from silently becoming Unicode?

Replace the handful of characters that are not in the GSM-7 alphabet. The usual culprits are invisible: smart quotes pasted from a word processor, an en or em dash, a stray ellipsis character, a non-breaking space, or a look-alike Cyrillic/Greek letter that is visually identical to a Latin one. A single one of these drops the per-segment budget from 160 to 70 characters and can double your segment count and cost. This tool detects each one and produces a cleaned, GSM-7-safe version you can copy.

What the sanitizer changes

Smart and curly quotes become straight quotes. En and em dashes become a hyphen. The ellipsis character becomes three dots. Non-breaking, thin and zero-width spaces become a normal space (or are removed). Bullets become an asterisk; the trademark, copyright and registered symbols become (TM), (C) and (R). Cyrillic and Greek look-alike letters can optionally be swapped for their Latin twins. Emoji and other-script characters have no GSM-7 equivalent, so they are flagged rather than changed — you decide whether to remove them or accept Unicode.

What is exact, and what is a suggestion

The character detection and the segment / cost math are exact: they follow the GSM 03.38 alphabet and the 160/153 (GSM-7) versus 70/67 (UCS-2) segmentation rules. The punctuation, space and symbol replacements are lossless in meaning. Homoglyph replacement is the one judgement call — swapping a Cyrillic letter for a Latin one changes the underlying character, which is exactly what you want for spoofed Latin text but wrong if the message is genuinely in another language. That is why it is off by default and clearly flagged.

Frequently asked questions

How is this different from the GSM-7 / Unicode checker?

The checker classifies every character so you can see which ones force UCS-2 — it flags. This sanitizer goes one step further and fixes them: it applies a curated set of GSM-7-safe replacements and gives you a cleaned message to copy, with a before/after segment and cost comparison. Use the checker to understand, the sanitizer to clean.

Why does one smart quote double my SMS cost?

SMS uses a single encoding for the whole message. If even one character is outside the GSM-7 alphabet, the entire message must be sent as UCS-2 so that character survives. UCS-2 fits only 70 characters per single segment (67 per part when concatenated) versus 160 (153 per part) for GSM-7. So a stray curly quote or en dash can turn a one-segment message into two, doubling the cost.

What is a homoglyph and why is it dangerous?

A homoglyph is a character from one alphabet that looks identical to one from another — for example the Cyrillic 'а' (U+0430) is visually indistinguishable from the Latin 'a' (U+0061). If one slips into your text (often from copy-paste), the message looks like plain English but silently encodes as Unicode. Because you cannot see it, it is one of the most confusing causes of unexpected UCS-2 encoding. The sanitizer surfaces the exact code points and can replace them.

Will replacing homoglyphs change my message?

It changes the underlying character, not the appearance. For text that is meant to be Latin (for example a brand name someone pasted with a hidden Cyrillic letter), that is exactly the fix. But if your message is genuinely written in Russian, Greek or another language, those letters are correct and should stay — so homoglyph replacement is off by default and clearly warned.

Can it make every message GSM-7?

No, and it does not pretend to. Emoji and characters from non-Latin scripts such as Arabic or Chinese have no GSM-7 equivalent. The tool flags them honestly and leaves them in place; reaching GSM-7 then means removing them or accepting Unicode. Everything the tool can safely fix, it fixes.

Does my message get uploaded anywhere?

No. All detection, replacement and segment math runs locally in your browser using JavaScript. Your text is never sent to a server.

Ready to send clean messages at scale?

BroadNet ships a Bearer-token REST API, direct SMPP 3.4 binds, delivery webhooks and an official TypeScript SDK across 200+ countries — with GSM-7 and Unicode handled correctly end to end.