Skip to content

SMS Character & Segment Counter

See exactly how many characters, segments and Unicode units your SMS message uses before you send it, and which characters push you into an extra part.

Runs in your browser; nothing is uploaded.

GSM-70 characters used· 0 segments

Results appear here as you type.

GSM-7 fits 160 characters single / 153 per part. Unicode (any Urdu, emoji or "smart" punctuation) fits 70 single / 67 per part.

How to use it

How to use the SMS character counter

  1. Type or paste your message into the box above.

  2. Watch the live count: characters used, encoding (GSM-7 or Unicode), and how many message parts (segments) it will send as.

  3. If a character has switched your message to Unicode, it is highlighted below the box so you can see exactly which one.

  4. Use Replace with GSM equivalents to swap "smart" punctuation — curly quotes, en/em dashes, ellipses — for the plain GSM-7 versions, when that keeps your meaning intact.

  5. Use Sample EN or Sample Urdu to see a worked example in each encoding.

Every SMS is sent in one of two encodings. GSM-7 fits 160 characters in a single message (153 per part once a message needs more than one part); it covers plain English letters, digits and basic punctuation. Unicode (UCS-2) is used the moment your message contains a character GSM-7 cannot represent — Urdu script, emoji, or "smart" typographic punctuation from a word processor — and it holds only 70 characters per single message (67 per part).

Ten GSM-7 characters — the extension set ^{}\[]~|€ (nine symbols) and a form feed — always cost 2 units each, and this counter never splits one of them across two message parts: the part boundary moves earlier instead, exactly as a handset would send it.

Frequently asked questions

Why did my message suddenly need 2 texts instead of 1?

A single SMS can be up to 160 characters in the standard GSM-7 alphabet. Once you go over that limit, the message is split into linked parts, and each part can only hold 153 characters, not 160, because a small header is needed to tell handsets how to rejoin them. That is why crossing 160 characters can add a second part, and why totals like 161 or 307 jump the segment count by more than you might expect.

Why does one emoji or Urdu letter change the whole message's encoding?

SMS uses GSM-7 by default, a 128-character alphabet built for English text. The moment your message contains a character GSM-7 does not have, such as an emoji, Urdu or Arabic script, or even a smart curly quote from a word processor, the whole message switches to Unicode (UCS-2). Unicode messages hold far fewer characters per part, 70 instead of 160, because each character needs two bytes instead of one seven-bit unit.

What are the ^ { } \ [ ] ~ | € characters, and why do they count as 2?

These ten characters are not in the basic GSM-7 alphabet, but a network extension table lets GSM-7 messages use them anyway, at the cost of two units each instead of one. A form feed character behaves the same way. This counter always applies that 2-unit cost, and never splits one of these characters across two message parts, exactly as a real handset sends it.

Does autocorrect or predictive text change my character count?

It can. Autocorrect on phones and word processors often replaces plain straight quotes and hyphens with curly smart quotes and long dashes, which are not part of GSM-7 and force the whole message into Unicode's shorter 70-character limit. The Replace with GSM equivalents button swaps these back to plain GSM-7 punctuation where doing so will not change what your message says.

Is this counter accurate for every SMS gateway?

The 160/153 (GSM-7) and 70/67 (Unicode) limits, and the GSM-7 alphabet itself, come from the international SMS standard that every carrier and gateway follows, so the character and segment counts here usually match what your provider bills you for. What can differ between providers is the price per segment and any extra sender ID or opt-out text they add — this tool only counts the message you typed.