📱 SMS segment checker
SMS character counter
Count text message characters, detect GSM-7 versus UCS-2 encoding, estimate multipart segments, include required opt-out text, flag emoji or non-GSM characters, and preview the final SMS.
Plain SMS
Best for short transactional alerts, reminders, pickup notices, and codes that need one clean screen.
Fastest fitMultipart SMS
DISCLOSURE: This post may contain affiliate links, meaning when you click the links and make a purchase, I receive a commission. As an Amazon Associate I earn from qualifying purchases.
Useful for necessary detail, but each extra part can affect carrier billing and reader patience.
Watch costUnicode SMS
Needed for emoji, accents outside GSM, CJK text, and symbols, with a much smaller segment limit.
70 unitsOpt-out SMS
Marketing and subscription messages often need STOP text, so reserve room before writing the CTA.
Reserve space| Encoding | Single segment | Multipart segment | How this checker counts |
|---|---|---|---|
| GSM-7 default | 160 septets | 153 septets | Basic GSM characters count as 1 septet. |
| GSM extension | Still GSM-7 | Still GSM-7 | Characters such as ^, {, }, [, ], ~, |, and euro count as 2. |
| UCS-2 / Unicode | 70 units | 67 units | Non-GSM text uses UTF-16 code units for segment planning. |
| Multipart overhead | None | Header applied | Capacity drops to allow concatenated SMS reassembly. |
| Trigger | Example | Encoding impact | Checker warning |
|---|---|---|---|
| Emoji | Smiley, book, sparkle | Switches to UCS-2 | Emoji warning and smaller segment limit. |
| Curly quote | Smart apostrophe | Usually UCS-2 | Non-GSM list shows the character. |
| CJK script | Chinese or Japanese text | UCS-2 | Unicode unit count replaces GSM septets. |
| GSM extension | Braces, slash bar, euro | GSM-7 with escape | Extension count shows doubled units. |
| Opt-out pattern | Typical length | Best placement | Why it matters |
|---|---|---|---|
| Reply STOP | 10 characters | End of message | Short but may be too vague for campaigns. |
| Reply STOP to opt out | 21 characters | End of message | Clear compliance copy for many lists. |
| Txt STOP to cancel | 18 characters | End of message | Compact alternative when space is tight. |
| Custom footer | Varies | End or reserved | Count it before final segment planning. |
| SMS type | Common target | Safe structure | Length risk |
|---|---|---|---|
| 2FA code | 40-90 chars | Brand, code, expiration | Low unless links are added. |
| Appointment reminder | 90-150 chars | What, when, action | Medium with opt-out footer. |
| Marketing alert | 120-160 chars | Offer, deadline, STOP text | High near the 160 boundary. |
| Unicode campaign | 50-70 units | Short copy, no extras | High because emoji reduce capacity. |
These are the final previews. How opt-out text affects your message length There is multipart overhead. These are segment counts. Encoding These are emoji warnings. Send SMS text messages with greater accuracy using this tool.
A few minutes later, you fire off a brief message to your customer. You press “send.” And it’s sent, but in three texts! Ouch, that costs more than you planned.
How SMS Rules Change Your Costs
You send an emoji, too? That switch to UCS-2 halves your capacity, which can quickly multiply your billable segments. Why do these charges surprise you? Double-ouch, that’ll be another billable segment. Why do these charges surprise you? It’s all about the strictness of SMS pricing rules.
At a glance, they’re straightforward. But then they shifts, depending on characters you enter. Or if you neglect necessary legal jargon. GSM-7 encoding is the quiet hero behind most efficient texting. That covers all of regular letters, all of the numbers, a few symbols, and fits inside 160 characters per message.
Throw in an emoji or an accented letter, and suddenly your message switch to UCS-2. Your character count are cut in half. Delivery reports is full of unexpected charges. Until that point, it seems like an arbitrary change. There’s an additional price in opt-out text. Include instructions such as “Reply STOP to opt out” in your marketing messages. That eats up more characters. It might break one sentence into two segment.
A lot of marketers put the offer in first and append disclaimers after. By then it’s too late, the message is overlong. Write the offer with enough room left for footer. How does that alter the copy?
Other problems involve line breaks, and pasted urls. Each return is treated as two on some platforms. Additional spaces is ignored by others. Your long tracking links appear short within your draft. Once the carrier counts them they may put you over limit. Shorten links. This only happens if your system substitute them for original before sending. Counting a short substitute isn’t the same thing as counting a whole URL. The difference means two segments, or one.
The hidden costs are GSM-7 extension characters. They appear to be fine. The euro sign appears fine. Brackets and braces also appear fine. Except they don’t work like that. Instead of a single unit, each of these take up two. There are fewer spaces then you think. There is an extra segment for a single vertical bar. It is significant if you’re running a long campaign.
If you want to know what’s constrained, study up. Transactional is below the line. It is short and objective. Marketing tries to lure with cleverness. Then things go wrong. Add some humanity? Sure. Include an em dash or a smart quote? Nope. That’s Unicode mode.
Before paying, they can preview last message. They see it wrapped on screen. They verify there’s enough space for their call-to-action. Why? To prevent regrettable mistakes. Avoiding a message so cramped and split apart that it feels broken.
If you understand these rules, then you’ll be confident to rely on SMS. And once you know which characters matter for cost, then you’re able to set clear expectations for future campaigns. Readers will recall a message delivered in a single clean piece.

