Text & web utilities

SMS character and segment calculator

Estimate GSM-7 or Unicode message segments, including extension characters, emoji code units and per-segment capacity.

Your numbers

Optional. Text stays in this calculator. Whitespace counts exactly as entered; no message is sent.

Calculated on your device. Your inputs aren’t sent to us.

Your result

Ready when you are

Enter your numbers and select Calculate.

Try it, understand it

Explore the result

Watch encoded capacity rather than assuming each displayed character costs the same amount.

Worked example comparison
ExampleOutputWhat to notice
Five basic lettersEstimated SMS segments1Hello is five GSM-7 septets in one segment.
161 ordinary lettersEstimated SMS segments2Multipart GSM capacity is 153 septets, requiring two segments.
36 simple emojiEstimated SMS segments2Each emoji uses two UTF-16 units. Seventy-two units exceed the single-message capacity and require two modeled parts.

Check your understanding

What does one euro symbol cost in GSM-7?

Two septets because it uses the extension table.

Will the provider necessarily bill exactly this count?

No. Sender rules, added text, transformations and packing can differ.

Behind the numbers

How this calculation works

The encoded size controls segmentation, rather than the visible letter count alone. GSM extension characters consume two septets; a non-GSM character switches the whole message to a Unicode-unit model. A supplementary Unicode character such as a simple emoji occupies two UTF-16 units.

THE FORMULAChoose encoding → count encoded units → pack whole characters into 160/153 or 70/67 unit capacities

A worked example

A five-letter Hello message uses five GSM-7 septets and one segment. With 161 ordinary GSM characters, multipart capacity is 153 units, so two segments are needed.

Good to know

A standard-capacity estimate, not a provider bill or delivery guarantee. No smart encoding, added unsubscribe text, national-language shift table, sender-specific capacity or grapheme-cluster packing. A two-unit character is kept together; providers may use other packing or line-ending conventions.

A visible character is not always one encoded unit

A simple Latin letter usually consumes one GSM-7 septet. An extension character such as a brace or euro symbol consumes two. Adding a character outside that alphabet changes the encoding model for the whole message.

That is why a short edit can change the segment count unexpectedly. This calculator leaves the entered text intact: it does not replace curly punctuation, remove emoji or apply a provider’s smart-encoding feature.

The reading and speaking time calculator concerns how long people may take with text. An SMS segment calculator measures encoded capacity instead.

Multipart messages have less space per part

The standard-capacity model allows 160 GSM-7 septets in a single message. Once the message needs multiple parts, the modeled capacity falls to 153 per part to allow concatenation information. Unicode-unit limits are 70 and 67 respectively.

For 161 ordinary GSM characters, the model packs 153 into one part and eight into another. Extension characters and supplementary Unicode characters are kept as whole two-unit characters, so a part can have one unused unit before the next character.

Check the provider’s final message too

An added sender prefix, unsubscribe instruction, substituted punctuation or different line-ending handling can change the final payload. The estimate here uses the exact supplied code points, including spaces and line breaks.

Unicode code points are shown separately from encoded units. A multi-code-point emoji sequence can look like one icon on screen. This model does not promise to preserve that whole visual grapheme in one segment; compare your provider’s own final-payload estimator before relying on a bill.

A few questions, answered

Does this send my message?

No. It calculates locally and has no SMS-sending endpoint.

Why can an emoji change every segment limit?

A non-GSM character selects the Unicode-unit model for the entire message, including the ordinary letters already present.

Why can dividing total units by 153 undercount?

A two-unit character is not split across parts in this model. Unused capacity at a boundary can therefore require an extra part.

Find your calculator

Start typing to explore the library.