1. Home
  2. Free tools
  3. Phone number tools
  4. SMS character counter

SMS character counter and segment calculator

An SMS character counter shows how many segments a text will be billed as. One SMS holds 160 characters in the GSM-7 alphabet or 70 in Unicode (UCS-2). Longer messages split into segments of 153 or 67 characters, each billed separately. Type above to see the encoding, segment count and the characters that forced Unicode.

Characters
0
Encoding
GSM-7
Segments
0
Left in this segment
160

GSM-7: 0 of 160 characters used.

numbers
Sample result from the SMS character counter
Show the sample result as

Sample result

This 91-character message fits in 1 SMS segment, with 69 characters to spare.

Segment 191 of 160 characters
Segments
1
Left in this segment
69

What this means for you

Texts are billed by segment, so staying under the limit keeps each send to one segment.

Next step:Estimate your SMS cost
  • Characters, encoding and segment count
  • Shows what's left in the current segment
  • Names the characters that force Unicode
  • Swaps common look-alikes back to GSM-7
  • SMS
  • GSM-7
  • Segments

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

How to count SMS characters and segments

  1. Type or paste the message. The counts update as you type.
  2. Check the encoding. If it says UCS-2, the highlighted characters are the reason.
  3. Press "Replace look-alikes" to swap curly quotes, long dashes and odd spaces for plain ones, and watch the segment count drop.
  4. Enter your recipient count to see the total segments a send will be billed for.

Example

You enter
A 91-character message written only in plain GSM-7 characters.
You get
GSM-7 encoding, 1 segment, 91 of 160 characters used and 69 left in the segment.
Limits
No usage limit and no account; character highlighting stops at the first 3,000 characters, but the counts cover the whole text.

What is the SMS character limit?

The SMS character limit is 160 characters in the GSM-7 alphabet, or 70 if the message needs Unicode (UCS-2). SMS carries 140 bytes of text. In the GSM 7-bit default alphabet, defined in 3GPP TS 23.038, each character takes 7 bits, so 160 fit in one message. Any character outside that alphabet switches the whole message to UCS-2, a 16-bit encoding, and the limit falls to 70.

When a message is longer than one SMS, it's sent as several segments that the phone stitches back together. Each segment gives up room for a user data header that says which part it is, which leaves 153 GSM-7 or 67 UCS-2 characters per segment. Twilio's guide to the SMS character limit uses the same numbers: a 161-character GSM-7 message goes out as two segments, one of 153 and one of 8.

Which characters count double or force Unicode in an SMS?

Nine characters count double, and anything outside the GSM-7 alphabet forces Unicode. The nine sit in the GSM-7 extension table: ^ { } \ [ ] ~ | and €. They stay in GSM-7 but each takes two character slots, an escape code plus the character, so a message full of euro signs fits 80 of them, not 160. The counter accounts for this, and never splits an escaped character across two segments.

Characters outside GSM-7 are the expensive ones. The usual culprits are invisible: a curly apostrophe (’) pasted from a document, an en dash, a non-breaking space or an ellipsis typed as one character. Accented letters vary. é and ü are in GSM-7, but á, ê and lower-case ç aren't. Emoji are outside it too, and most count as two UCS-2 units each. To list every non-GSM character in a template and get a cleaned copy, use the GSM character checker.

Why can one character double your SMS bill?

Because one non-GSM character switches the whole message to UCS-2, which fits less than half as much text per segment. Take a 140-character appointment reminder. In GSM-7 it's one segment. Paste it from a word processor that turned we're into we’re, and it becomes UCS-2: 140 characters at 67 per segment is three segments, billed to every recipient. Across a 10,000-number send, that's 30,000 segments instead of 10,000. The highlight above shows exactly which character did it. Some platforms, Twilio's Smart Encoding among them, swap common look-alikes for you, but it's safer to fix the text before it reaches the platform.

If your message needs a language outside GSM-7, such as Arabic, Chinese or Hindi, UCS-2 is unavoidable. Plan for 70 characters per message, or 67 per segment.

How many SMS segments will a campaign be billed for?

Segments per message times recipients: every recipient is billed for every segment, which is what the recipients box above multiplies out. The other half of the cost is who you send to. Most landlines can't receive a standard text, and numbers with a missing digit or the wrong country code fail, so each one on your list is a wasted send. Before a campaign, run the list through the phone number formatter to get every number into E.164, then the landline or mobile checker to see which ranges are mobile. In the US and Canada the digits can't settle mobile versus landline, which is where a carrier lookup comes in.

GSM-7 vs UCS-2: what's the difference?

Both encodings fill the same 140 bytes per SMS. What changes is how many bits each character needs:

GSM-7UCS-2 (Unicode)
Bits per character716
Characters in one SMS16070
Characters per segment, once split15367
Extension characters such as € and [Two slots eachOne unit each, like every character
What it coversBasic Latin letters, digits, common punctuation, some accented letters and Greek capitalsEvery script, plus emoji (most take two units)

One character outside GSM-7 anywhere in the text switches the whole message to UCS-2, not just that segment.

Who uses this tool, and for what?

SMS teams
Paste each campaign template before it's scheduled, replace the look-alikes that forced UCS-2, and enter the list size to see the billed segments before the send, not on the invoice.
Marketers
Copy written in a document or design tool often picks up curly quotes and long dashes. Check the final text here so a one-segment promo doesn't go out as three.
SaaS teams
Keep verification codes, reminders and alerts inside one segment, including the longest product name or variable you merge in. Test with the worst case, not the sample.
Agencies
Show clients why a message costs what it does: the counter highlights the exact characters that switched it to Unicode, and the GSM character checker gives a cleaned copy.

What can’t this tool tell you?

  • It counts the text you type. If your platform adds a sender name, an opt-out line or link tracking, the sent message is longer, so paste the final version.
  • It counts segments, not money. Price per segment depends on your provider and the destination country.
  • It uses the GSM-7 default alphabet. 3GPP TS 23.038 also defines national language shift tables for some languages; this counter doesn't model them, and support for them varies.
  • Platforms that re-encode text, such as Twilio's Smart Encoding, can send fewer segments than shown here.
  • It can't tell you a number can receive the text. Use the landline or mobile checker for the list.

Common questions

How many characters are in one SMS?
160 characters if every character is in the GSM-7 alphabet, or 70 if any character forces Unicode (UCS-2). Once a message is longer than that, it's split into segments of 153 GSM-7 or 67 UCS-2 characters each.
How many characters fit in two SMS segments?
306 characters in GSM-7, two segments of 153, or 134 in UCS-2, two segments of 67. Three segments hold 459 GSM-7 or 201 UCS-2 characters.
What is the SMS character limit with Unicode?
70 characters in a single message, and 67 per segment once it's split. Unicode (UCS-2) uses 16 bits per character, so the same 140 bytes hold fewer characters than GSM-7's 160.
Why does my message only allow 70 characters?
At least one character is outside the GSM-7 alphabet, so the whole message is sent as UCS-2. The usual causes are curly quotes and apostrophes, long dashes, non-breaking spaces and emoji. The counter highlights them, and the replace button swaps the common look-alikes for plain characters.
Do emoji count as one character in SMS?
No. An emoji forces the whole message into UCS-2, and most emoji take two UCS-2 units each, so one emoji leaves room for 68 other units in a single message. Some emoji built from several code points take more.
What is an SMS segment?
A long text is sent as several separate SMS, called segments, each with a small header so the phone can reassemble them in order. The header takes 7 GSM-7 characters of space, which is why a segment holds 153 characters, not 160. Each segment is billed separately.
Does Twilio count SMS segments the same way?
Yes. Twilio's documentation uses the same limits: 160 GSM-7 or 70 UCS-2 characters in one message, and 153 or 67 per segment. Its Smart Encoding option can replace some look-alike characters for you, which can lower the count this tool shows.
Do spaces and line breaks count?
Yes. Spaces and line breaks are GSM-7 characters and count as one each. A non-breaking space, often pasted from web pages or documents, isn't in GSM-7 and switches the message to Unicode.

Sources

Embed this tool on your site

Paste this code into any page to give your readers the SMS character counter for free. The frame resizes to fit and works on light and dark pages. Keep the link under it so readers can find the full guide. More tools to embed are on the embeddable tools page.

HTML
<iframe src="https://simpleverifier.com/embed/tools/sms-character-counter" title="SMS character counter by SimpleVerifier" data-sv-embed="sms-character-counter" width="100%" height="640" loading="lazy" allow="clipboard-write" style="border:0;width:100%;max-width:760px;display:block"></iframe>
<p style="margin:6px 0 0;font-size:13px"><a href="https://simpleverifier.com/tools/sms-character-counter">Free SMS character counter by SimpleVerifier</a></p>
<script>(function(){if(window.__svEmbed)return;window.__svEmbed=1;window.addEventListener("message",function(e){if(e.origin!=="https://simpleverifier.com")return;var d=e.data;if(!d||d.type!=="simpleverifier:embed-height"||typeof d.slug!=="string"||typeof d.height!=="number"||!isFinite(d.height))return;var f=document.querySelectorAll("iframe[data-sv-embed]");for(var i=0;i<f.length;i++){if(f[i].contentWindow===e.source){f[i].style.height=Math.min(Math.max(Math.ceil(d.height),200),4000)+"px";}}});})();</script>

The numbering plan only knows what a range was issued for.

In the US and Canada mobiles and landlines share the same prefixes, and anywhere a number can be ported or reassigned the range stops telling the whole story. A live carrier lookup asks the network data instead, which is what the Email + Phone plan adds.

  • 5,000 live carrier lookups a month: real line type, including US numbers
  • Carrier name for every number looked up
  • Upload a CSV up to 100,000 rows; emails in the same file get a mailbox check

One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then one flat monthly price, or a one-time pack.

7-day money-back guarantee Cancel anytime Secure payment by Stripe