Skip to content
← Free tools

SMS segment calculator

Count SMS segments before you send

Paste your SMS body. See whether it encodes as GSM-7 or UCS-2, the exact character and segment counts, where each segment breaks, the characters that force Unicode and double up, and how many characters a short link would save.

Sending campaign SMS at volume? SwiftURL gives you branded, DLT-ready short links that keep messages in one segment and let you track every click, without switching your SMS provider.

SMS & WhatsApp link tracking

How SMS segments and encoding actually work

SMS was designed around a fixed payload, and everything about counting messages follows from that. A single message carries 140 bytes. With the 7-bit GSM-7 alphabet that is 160 characters; with 16-bit Unicode it is 70. The moment your text needs one character that GSM-7 does not have, the entire message is re-encoded as UCS-2 and the limit drops to 70, which is how a message that looked fine suddenly costs two segments.

Why one character can double your cost

The usual offenders are invisible. A word processor turns a straight apostrophe into a curly one, or a hyphen into an en dash, and that single smart-punctuation character forces the whole message into Unicode. Emoji do the same. This is why a 150-character message can quietly become two segments after a copy and paste from a document. The calculator above highlights every character in your text that is outside GSM-7, so you can find and replace it before it costs you.

Segments are not simple division

When a message spills past a single segment, each part needs a small header to reassemble the pieces in order, so the per-segment capacity drops. A multi-part GSM-7 message holds 153 characters per segment, not 160, and a multi-part Unicode message holds 67, not 70. That is why a 161-character GSM-7 message is two segments of 153, and why crossing a boundary by one character can add a whole segment. A handful of GSM-7 characters, including the euro sign, square brackets, braces, backslash, caret, tilde, and pipe, take two positions each, which can also nudge you over a boundary unexpectedly.

Where short links come in

A raw tracking URL with campaign parameters is frequently 60 to 90 characters, and dropping one into a 120-character message pushes it straight into a second segment. A branded short link is around twenty characters, and it carries the click tracking the long URL was there for in the first place. Shortening is one of the most reliable ways to keep a campaign in a single segment. If you send at volume, see SMS and WhatsApp link tracking and the India DLT and TRAI tooling. We deliberately do not show a rupee cost here, because carrier rates vary and a wrong number is worse than none; this tool reports segments and encoding only.

Frequently asked questions

Why is my SMS counted as two messages?
A single SMS holds 160 characters in GSM-7 or 70 in Unicode. Over that and the message splits into segments of 153 or 67 characters, each billed separately. One Unicode character, like a curly quote or emoji, switches the whole message to UCS-2 and roughly halves the limit.
What is the difference between GSM-7 and UCS-2?
GSM-7 is the default 7-bit SMS alphabet: Latin letters, digits, and common punctuation, at 160 characters per single message. UCS-2 is 16-bit Unicode used when your text contains any character outside GSM-7, at 70 characters per single message.
Which characters force Unicode encoding?
Common culprits are curly quotes, en and em dashes, emoji, and many non-Latin scripts. A few characters such as the euro sign, brackets, braces, backslash, caret, tilde, and pipe are still GSM-7 but count as two characters each. The calculator flags each one in your text.
How much does a short link save in an SMS?
A raw campaign URL is often 40 to 90 characters and can push a message into a second segment on its own. A branded short link is around 20 characters. The calculator detects links in your text and shows the characters, and any segments, you save by shortening.
Does this help with DLT SMS templates in India?
Yes. DLT-registered templates have length constraints, and Unicode content shortens the usable length sharply, so knowing your encoding and segment count up front avoids surprises. See SwiftURL for India.