Free SMS calculator · GSM-7 / Unicode · no sign up

SMS Character & Segment Counter

Paste an SMS to see exactly where it splits, identify Unicode characters that change encoding, preview safe GSM-7 fixes, compare before-and-after segment savings, and estimate campaign cost. Everything runs locally in your browser.

Message

Write or paste your SMS

See exactly how encoding, Unicode characters, and multipart rules affect the final segment count.

0 segments

Runs locally in your browser. Provider smart encoding, carrier behavior, and billing rules can vary.

Segment map

See where your SMS splits

Each card shows the encoded capacity used by that billable segment. Extended GSM characters count as two septets.

Standard SMS · 160 / 153
No segments yet. Add a message above.
Unicode inspector

Find characters that change your encoding

Only safe punctuation and spacing equivalents are auto-optimized. Emoji, names, and language characters are never silently removed.

0 triggers
Your message currently has no non-GSM-7 characters.
Safe GSM optimization

Preview the savings before changing your text

Smart punctuation and Unicode spacing can often be replaced with visually similar GSM-7 characters without changing the meaning.

Current 0 segments

GSM-7

Safe optimized preview 0 segments

GSM-7

Potential saving 0 segments

No safe replacements needed.

Preview optimized message
Your optimized preview will appear here.
Campaign impact

Estimate billable segments and cost

Enter your own recipient count and provider cost per segment. No provider pricing is hard-coded.

Current billable segments0
Optimized billable segments0
Current estimated cost
Optimized estimated cost
Potential campaign saving
Advanced

Choose the segmentation profile

Standard SMS uses 153 GSM-7 or 67 Unicode units per multipart segment. Twilio documents a US/Canada toll-free exception of 152 / 66.

The toll-free profile reflects Twilio's documented US/Canada exception. Other providers and destinations can apply different behavior, so verify billing-critical sends with your provider.

How to use the SMS character counter

Diagnose the current encoding, see each billable segment, inspect Unicode triggers, and test safe optimizations before you send.

1. Paste the exact SMS message

Use the final message body, including punctuation, emoji, personalization text, and line breaks. The calculator updates immediately.

2. Inspect the segment map

Review how many billable segments the message uses and where the text splits under the selected segmentation profile.

3. Check Unicode triggers

The Unicode inspector lists each non-GSM-7 character, its code point, occurrence count, and a safe replacement when one is available.

4. Compare optimization and campaign impact

Preview safe GSM-7 fixes before applying them, then enter recipients and your own cost per segment to estimate the difference at campaign scale.

How SMS segment counting works

SMS capacity depends on encoding, not only on the number of visible characters.

GSM-7: 160 or 153 units

A single GSM-7 SMS can carry up to 160 septets. Once the message becomes multipart, space is reserved for concatenation data, leaving 153 septets per segment.

Unicode: 70 or 67 units

When text contains characters outside GSM-7, many SMS platforms use Unicode/UCS-2-style encoding. A single segment holds 70 16-bit units, while multipart messages commonly use 67 units per segment.

Some GSM characters use two units

Characters in the GSM extension table—such as ^, {, }, \, [, ], ~, |, and €—use an escape code and therefore consume two GSM-7 septets each.

SMS optimization and billing tips

Use optimization only where it preserves meaning, and treat provider-specific pricing or segmentation as a final verification step.

Optimize punctuation, not language

Safe optimization targets smart quotes, dashes, ellipses, and Unicode spacing with obvious GSM-7 equivalents. Emoji, names, and language characters are not silently removed.

Count billable segments, not just characters

A message can look short but become expensive when one Unicode character changes the whole encoding. Segment count is the metric that usually matters for billing.

Use the right profile

Standard multipart SMS commonly uses 153 GSM-7 or 67 Unicode units per segment. Twilio documents a US/Canada toll-free exception of 152 and 66.

SMS character counter FAQ

How many characters fit in one SMS?

A standard GSM-7 SMS can hold up to 160 encoding units in one segment. A Unicode/UCS-2 SMS can hold up to 70 16-bit units in one segment.

Why does a long GSM-7 SMS use 153 characters per segment?

Multipart SMS messages reserve space for a User Data Header so the receiving device can reassemble the parts. That leaves 153 GSM-7 septets per part instead of 160.

Why can an emoji make my SMS use more segments?

Emoji and other characters outside the GSM-7 set switch the message to Unicode/UCS-2-style encoding on many SMS platforms. The single-segment capacity then drops from 160 GSM-7 units to 70 Unicode units.

Do characters like ^, {, }, and € count extra in GSM-7?

Yes. GSM-7 extension-table characters are encoded with an escape code plus the character, so each uses two septets even though it looks like one visible character.

Is the segment count guaranteed to match my provider bill?

The calculator follows standard GSM-7 and Unicode SMS segmentation rules. Providers may apply smart encoding, carrier-specific behavior, or product-specific limits, so verify the final count in your messaging provider when billing is critical.

What does Apply safe GSM fixes change?

It only replaces selected Unicode punctuation and spacing characters with obvious GSM-7 equivalents, such as curly quotes with straight quotes and long dashes with hyphens. It does not remove emoji, names, or language-specific characters.

Why is there a US/Canada toll-free profile?

Twilio documents a toll-free multipart exception for SMS sent to the US or Canada: 152 GSM-7 units or 66 UCS-2 units per segment instead of the standard 153 or 67. Other providers can behave differently.

How does the campaign cost estimate work?

The calculator multiplies message segments by the recipient count and your own cost-per-segment input. TextBases does not hard-code provider pricing because rates vary by provider, sender type, carrier, and destination.