Veloci Tools

SMS Character Counter: GSM-7 vs UCS-2 Segment Calculator

Count SMS characters and segments live. Detects GSM-7 vs UCS-2 encoding and flags the exact characters forcing Unicode mode, with a one-click GSM-safe cleanup.

Encoding
-
Characters
0
Segments
0
Remaining in segment
-

Start typing above to see live encoding, segment count, and character analysis.

More segments means a higher cost per message: most SMS providers bill per segment sent, not per message.

What this tool does

This counter runs the same math carriers use to bill a text message. Every character you type is checked against the GSM 03.38 alphabet, the 7-bit set that covers plain ASCII plus a handful of accented Latin letters and Greek symbols. If your message fits entirely inside that set, it sends as GSM-7: 160 characters in a single segment, or 153 per segment once a message needs to split into multiple parts, since 7 characters are reserved for the concatenation header on multi-part sends. A small group of GSM-7 characters, including the euro sign, brackets, the pipe, caret, tilde, and backslash, are in an extension table and cost 2 characters instead of 1. The moment your text contains one character outside GSM-7 entirely, such as a curly smart quote, an em dash, an emoji, or most non-Latin scripts, the whole message switches to UCS-2 encoding, which drops the limit to 70 characters single-segment and 67 per segment on multi-part sends. That single stray character can silently double your per-message cost.

Who it's for

Marketers and agencies sending SMS or MMS campaigns through Twilio, Bandwidth, or a CRM like GoHighLevel, developers building A2P 10DLC sending flows, and anyone who copy-pastes message copy from Word or an email and unknowingly picks up smart quotes and em dashes along the way. If you have ever wondered why a message that looked like 158 characters actually billed as two segments, this tool shows exactly why.

How to use it

  1. Paste or type your message into the text box.
  2. Watch the live encoding badge to see whether it is sending as GSM-7 or UCS-2.
  3. Check the segment count and remaining-characters figure for your current segment.
  4. Review the highlighted list of specific characters that are forcing Unicode mode, if any.
  5. Click the cleanup button to auto-replace smart quotes, em and en dashes, and other common offenders with GSM-7-safe equivalents.
  6. Re-check the segment count after cleanup to confirm you dropped back to GSM-7 pricing.

Good to know

This tool estimates encoding and segmentation using the standard GSM 03.38 character set and standard concatenation overhead. It does not connect to any carrier or sending platform, so it cannot account for provider-specific quirks, sender ID overhead on some networks, or MMS conversion rules that some platforms apply when a message exceeds a certain length. Always confirm actual segment counts and billing in your sending platform before relying on this for cost projections at scale.

Frequently asked questions

Why did adding one character push my text message from 1 segment to 2?

Single-segment GSM-7 messages max out at 160 characters, but once you go over that limit, the message must split into multiple parts, and each part loses 7 characters to a concatenation header that tells phones how to reassemble the pieces. So the per-segment limit drops to 153 the moment you cross 160, meaning one extra character can shrink your effective budget by 7 characters, not add 1.

What is the actual difference between GSM-7 and UCS-2 encoding?

GSM-7 packs each character into 7 bits and can only represent the characters in the GSM 03.38 alphabet: basic Latin letters, digits, common punctuation, and a small set of accented letters and symbols. UCS-2 uses 16 bits per character to support the full Unicode range, including emoji, curly quotes, em dashes, and non-Latin scripts, but that wider support costs you more than half your character budget per segment.

Which specific characters force a message into UCS-2 mode?

The most common culprits are curly or smart quotes and apostrophes picked up from Word or iOS autocorrect, em dashes and en dashes, ellipsis characters, emoji, bullet points, and any non-Latin script character. This tool highlights the exact characters in your message causing the switch so you are not guessing.

Do emoji always cost 2 characters in a text message?

Emoji force UCS-2 encoding outright, and many emoji are represented internally as a surrogate pair, meaning they consume 2 UCS-2 character units on their own, on top of dropping your whole message's limit from 160 to 70 characters. A message with even one emoji is usually far more expensive per character sent than plain text.

Why do some GSM-7 characters like the euro sign or brackets count as 2 characters?

The GSM 03.38 standard reserves a small extension table for characters like the euro sign, square and curly brackets, the pipe, caret, tilde, and backslash. Sending one requires an escape character plus the character itself, so each one consumes 2 characters of your GSM-7 budget even though the message stays in the cheaper encoding.

How do I get my message back into GSM-7 if it switched to UCS-2?

Use the cleanup button to auto-replace the most common offenders: smart quotes become straight quotes, em and en dashes become hyphens, ellipsis characters become three periods, and other flagged characters are swapped for their closest GSM-7-safe equivalent. Emoji have no GSM-7 equivalent, so those need to be removed manually if you want to stay in the cheaper encoding.

Related tools