Validators · 100% free

SMS Character & Segment Counter

Count SMS characters and segments, GSM-7 (160 chars) vs UCS-2 (70 chars) with emoji detection.

Postscript Attentive Klaviyo SMS Twilio Any SMS
Encoding
UCS-2
Triggered by emoji or special chars
Characters
87
70 per segment
Segments (billable)
2
Multi-segment messages cost more
Why this matters financially
  • • SMS billing is per segment, not per message
  • • One emoji flips your encoding from GSM-7 (160 chars) to UCS-2 (70 chars)
  • • A 70-char message with emoji = 1 segment; without emoji = also 1 segment but you have ~90 chars headroom
  • • At Twilio's ~$0.0079/segment in the US, a 4-segment message costs 4× a 1-segment
  • • Avoid: smart quotes, em-dashes, € symbol (Extended GSM, count as 2 chars each)

About this tool

SMS billing is per segment, not per message. Add one emoji and your 160-char GSM-7 message becomes a 70-char UCS-2 message, quadrupling your send cost. This tool counts both, detects the encoding, and warns when emoji or special chars trigger UCS-2.

Smart quote gotcha

The most common reason for accidental UCS-2 encoding isn't emoji — it's smart quotes (' " — …) auto-inserted by most word processors. Paste from Word or Google Docs and your message silently flips encoding. Always retype or use straight quotes/dashes for SMS.

Frequently asked questions

Why does my SMS cost more than expected? +

SMS is billed per 'segment', not per message. Standard GSM-7 messages get 160 chars per segment. UCS-2 messages (any emoji, special char, smart quote) get 70 chars per segment. One emoji can quadruple your send cost.

Which characters trigger UCS-2 encoding? +

Any character outside basic GSM-7: all emojis, smart quotes (' ' " "), em-dashes (—), curly apostrophes, most non-ASCII punctuation, and characters from non-Latin scripts. Even one of these flips the entire message to UCS-2.

Why do extended GSM-7 chars count as 2? +

Characters like {, }, [, ], |, €, ^, \ and ~ are GSM-7 'extended set' and use 2 character slots each. They keep you in 160-char segments but cost double per character. Use plain ASCII whenever you can.

What's the practical limit before splitting segments? +

GSM-7: 153 chars per segment when concatenated (7 chars are used for the multi-segment header). UCS-2: 67 chars per segment when concatenated. So aim for under 153 for cleanest single-segment sends.

More free tools

See all tools →
Free forever · No card

Why wait? Try it free today.

Stop managing feeds manually. Start optimising with AI in 30 seconds.

  • 100% free forever, no credit card required
  • 1 brand, 1 feed, 100,000 products per feed
  • Full AI Product Optimisation, Rule Engine, and 200+ channel exports
  • Pay only for AI credits when you need them