You set up an AI voice agent. It takes bookings, confirms appointments, sends follow-up texts. The call transcripts look clean. Customers are happy. Then the first invoice arrives and your SMS line is double what you budgeted. Sometimes quadruple.
The culprit is almost never volume. It is encoding. One stray character - a smart quote copied from a Google Doc, an em-dash someone thought looked elegant - silently flips your message from GSM-7 to UCS-2, doubling the cost per segment and halving the number of characters you get per segment. We have seen agents rack up $400 in a weekend because someone pasted a template that included the phrase "we're" with a curly apostrophe.
GSM-7 vs UCS-2: the invisible fork in the road
SMS networks support two main character sets. GSM-7 is the original: 160 characters per segment, covering basic Latin letters, numbers, and a handful of symbols. UCS-2 is Unicode: 70 characters per segment, and it kicks in the moment you include anything outside the GSM-7 table - curly quotes, emoji, Mandarin, Greek, or even some punctuation you would swear is "normal".
Most SMS APIs, VoxReach included, automatically detect which encoding a message needs. If every character fits GSM-7, you pay for GSM-7. If even one character does not, the entire message becomes UCS-2. That single curly apostrophe cuts your segment length from 160 to 70 and potentially doubles your segment count for the same content.
At $0.60 per segment, the difference between a one-segment GSM-7 message and a two-segment UCS-2 message is $0.60. Send 200 of those a week and you are burning an extra $120 every seven days. Over a year, that is $6,240 you handed to invisible punctuation.
The characters that betray you
Here are the usual suspects that force UCS-2:
- Curly quotes and apostrophes: " " ' ' instead of straight " and '.
- Em-dashes and en-dashes: - and - instead of a plain hyphen -.
- Ellipsis character:... instead of three full stops...
- Non-breaking spaces: inserted by word processors when you paste formatted text.
- Emoji: every emoji forces UCS-2, and many occupy two UCS-2 code points, eating 4 of your 70 characters.
- Currency symbols outside GSM-7: ¥, €, ₹ are UCS-2; £, $, ¤ are GSM-7.
The problem is these characters look identical to their GSM-7 cousins in most fonts. You paste a template from Notion, the agent sends it, and the platform logs "UCS-2, 2 segments". You never see the curly quote. You just see the bill.
How segment splitting multiplies the pain
SMS is delivered in chunks. A single GSM-7 message can hold 160 characters. Concatenate two segments and you lose header space: the first becomes 153 characters, the second 153, total 306. A single UCS-2 message holds 70; two concatenated segments give you 67 + 67 = 134.
Imagine your AI sends: "Hi Sarah, your appointment is confirmed for Thursday 3 PM at our Bondi clinic. Reply YES to confirm or call us on 02 5926 2202. Thanks, the team." That is 145 characters. In GSM-7, one segment. If someone pasted "Thanks" with a curly apostrophe, it becomes UCS-2, and now it is 145 characters at 70 per segment: you pay for three segments instead of one. Your cost just tripled.
The one-line fix
Strip non-GSM-7 characters before the message leaves your template. Most platforms let you define a static reply or dynamic field. Run it through a filter that:
- Replaces curly quotes with straight quotes.
- Replaces em-dashes and en-dashes with hyphens.
- Replaces the ellipsis character with three full stops.
- Strips or replaces emoji.
- Converts non-breaking spaces to regular spaces.
In VoxReach, we handle this in two ways. First, the agent builder warns you when a template contains UCS-2 characters and shows you which ones. Second, we offer a toggle: "auto-normalise to GSM-7". Turn it on and every outbound SMS is scrubbed before send. You lose the curly quotes. You keep your budget.
One Redfern physio practice turned on auto-normalise in March and saw their monthly SMS bill drop from $340 to $180. Same message count. Same customer satisfaction. They had been sending appointment confirmations with an em-dash in the sign-off.
What to do right now
Open every SMS template your agent uses. Copy the text into a plain-text editor - Notepad on Windows, TextEdit in plain-text mode on Mac - and look for anything that is not a letter, number, space, or basic punctuation. Replace curly quotes with straight. Replace fancy dashes with hyphens. Replace... with three full stops.
If you are on VoxReach, go to Settings > SMS in the agent builder and turn on auto-normalise. If you are on another platform, ask support whether they offer GSM-7 enforcement. If they do not, build the filter into your CRM or middleware before the message hits the API.
Test with a message longer than 70 characters and shorter than 160. Send it to your own mobile. Check the delivery receipt for segment count. If it says two segments, you still have a UCS-2 character hiding somewhere.
AI voice agents already save you wages. Do not let invisible Unicode hand half the saving back to the telco. Sign up at app.voxreach.com.au/signup and run a free 90-second demo call and SMS to see the encoding warnings in action, or ring +61 2 5926 2202 to talk to Frank, our live AI broker, on the same platform.
Try VoxReach
Sign up in 2 minutes. One-off setup fee, then simple pay-as-you-go — no lock-in. Be live in 5 minutes.
Get started →