Free SMS Character Counter


Free SMS Character Counter

Live GSM-7 / Unicode detection, segment math & cost estimates — right in your browser.


Characters
0
septets
Encoding
GSM-7
Segments
0
Remaining
160
in this segment
Est. cost
$0.00




All characters are GSM-7 compatible — the most efficient encoding.

An SMS character counter is a free online tool that tells you exactly how many characters your text message contains, which encoding it uses (GSM-7 or Unicode), and how many paid message segments it will be split into — before you send it. Because carriers bill per segment rather than per message, a 161-character text can cost twice as much as a 160-character one, and a single emoji can triple your bill. Use the free counter above to check length, encoding, segments, and estimated cost in real time as you type.

What Is an SMS Character Counter?

An SMS character counter analyzes your message text the same way a carrier's SMS gateway does. Instead of just counting letters like a word processor, it detects which of the two SMS encodings your message requires, applies real concatenation math, and shows how many billable segments your message will consume.

Marketers use it to keep bulk campaigns inside one segment and control budgets. Developers use it to sanity-check message templates before pushing them through an SMS API. Anyone sending appointment reminders, OTP codes, or promotional blasts uses it to avoid the classic surprise: a message that looked like one text but was billed as three.

Paste your draft into the box above and you get five answers instantly: total characters, encoding, segment count, characters remaining in the current segment, and an estimated cost based on your per-segment rate. The tool also flags every non-GSM character and shows you exactly where it sits in your text.

Why 160 Characters Isn't Really the Limit: GSM-7 vs. Unicode

SMS does not count characters the way email or social media does. Every text message is transmitted in one of two encodings, and the encoding decides how much fits in a single segment:

  • GSM-7 — the default 7-bit alphabet designed for the Latin script. One segment holds 160 characters.
  • Unicode (UCS-2) — a 16-bit encoding for everything else. One segment holds only 70 characters.

Here is the part most counters never explain: the switch is all-or-nothing. The moment one unsupported character appears anywhere in your message, the entire message is re-encoded as Unicode. A 150-character message written in plain English plus a single party-popper emoji becomes a 151-unit Unicode message — and because Unicode segments are smaller, it is billed as 3 segments instead of 1.

This is why so many senders see their SMS bills double overnight after adding an emoji or pasting copy from a Word document. The Unicode Consortium defines the character repertoire, but carriers apply the GSM-7 vs. UCS-2 decision strictly at send time.

The GSM-7 Character Set, Explained

The GSM 03.38 alphabet contains 128 basic characters plus a 10-character extension set. Extension characters (such as the euro sign and curly brackets) require an escape code, so each one counts as two characters toward your segment total. Everything in the table below is safe — anything else flips your message to Unicode.

Category Characters Notes
Letters & digits A–Z, a–z, 0–9 Plain ASCII text is always GSM-7
Punctuation ! " # % & ' ( ) * + , - . / : ; < = > ? @ Straight quotes only — curly quotes are Unicode
Currency £ ¥ ¤ $ Note: € is an extension char (counts double)
Accented (basic) è é ù ì ò Ç Ø ø Å å Æ æ ß É Ä Ö Ñ Ü § ä ö ñ ü à ¡ ¿ Only these specific accented letters — č, š, ł and friends are Unicode
Greek Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Uppercase Greek capitals only
Extension set (x2 chars) ^ { } \ [ ~ ] | € Each counts as two characters toward the segment limit

For the authoritative definition of the alphabet, see the GSM-7 character encoding reference in Twilio's glossary, which lists the full septet table.

Which Characters Trigger Unicode (UCS-2) Mode?

In practice, messages rarely flip to Unicode because of everyday copy-paste. The table below shows the usual suspects; the counter above highlights each one in your own text so you can decide whether it is worth the extra segments.

Character(s) Why it triggers Unicode Usual source
Emoji (smileys, party poppers, thumbs-up, hearts) Outside the GSM alphabet entirely; astral-plane emoji count as two UCS-2 units each Phone keyboards
Curly quotes “ ” ‘ ’ GSM-7 only has straight " and ' Pasting from Word, Google Docs, or web pages
Em dash —, en dash –, ellipsis … Not in the GSM-7 set Blog copy and marketing drafts
Accented letters like č š ž ł đ Only the specific accented chars in the GSM table are supported Eastern/Central European names
Non-Latin scripts: Arabic, Chinese, Hindi, Cyrillic, Thai Require UCS-2 by definition Multilingual campaigns
Symbols: check marks, ™, arrows, bullets, stars Not in GSM-7 Marketing copy and bullet lists

How SMS Segment Math Works

When a message exceeds one segment, carriers split it into multiple parts and stitch them back together on the recipient's phone using a small header (the User Data Header). That header eats into your per-segment capacity: 160 becomes 153 characters for GSM-7, and 70 becomes 67 characters for Unicode. The parts still arrive as one long message, but you are billed for each part.

Message length Encoding Segments billed
160 characters GSM-7 1
161 characters GSM-7 2 (153 + 8)
306 characters GSM-7 2 (153 + 153)
307 characters GSM-7 3
70 characters Unicode 1
71 characters Unicode 2 (67 + 4)
134 characters Unicode 2 (67 + 67)
135 characters Unicode 3

Notice the cliff edges: adding one character past 160 or 70 can double your cost. The "characters remaining" readout in the tool above exists precisely so you can trim a message back under the edge. If you send through a provider, the Twilio SMS documentation explains the same concatenation rules from the carrier side.

How a Single Emoji Can Multiply Your SMS Cost

Consider a typical order notification, 108 characters of plain GSM-7 text:

"Hi Sara, your order #48291 ships today. Track it here: example.com/t/48291 — reply STOP to opt out."

At 108 characters it fits comfortably in one GSM-7 segment. Now add one party-popper emoji at the end. The emoji is not in GSM-7, so the whole message flips to Unicode: 109 ASCII characters plus 1 emoji (2 UCS-2 units) = 111 units. Unicode segments hold 67, so 111 units need 2 segments. One emoji just doubled the cost.

Make it a friendlier marketing text with two emojis and 140 characters of copy, and you land at 144 units — 3 segments (67 + 67 + 10). That is triple the cost of the plain-text version. Emoji are not banned, of course — they lift engagement — but every emoji should be a deliberate purchase decision. Check the segment count with the emoji before you approve the campaign.

7 Practical Ways to Cut Segments and Cost

  1. Replace smart punctuation. Swap curly quotes for straight ones (" '), em dashes for hyphens, and … for three periods. This single fix rescues more messages from Unicode mode than anything else.
  2. Audit every emoji. If you must use one, keep the total message at or under 67 UCS-2 units so it stays a single Unicode segment. The counter above shows your encoding live, so test with and without.
  3. Trim filler words. "We just wanted to let you know that" becomes "Update:". Shorter copy is usually better copy anyway.
  4. Shorten URLs. Strip tracking parameters you don't need, and use your own short domain rather than long deep links. (Avoid random public URL shorteners in marketing SMS — carriers and spam filters distrust them.)
  5. Count your legal text. "Reply STOP to opt out" is 21 characters. Required compliance copy counts toward segments, so include it in the draft you test — not after.
  6. Mind the extension characters. €, ^, {, }, \, [, ], ~, and | each consume two GSM-7 slots. Rarely a problem, but worth knowing if a price list keeps tipping into a second segment.
  7. Test before every bulk send. Paste the final draft into this counter as the last QA step. It takes ten seconds and has saved many campaigns from a 2–3x billing surprise. For larger sends, our guide to sending bulk SMS with the Textbelt API walks through the sending side.

When to Use the Cost Estimator on This Page

The cost field defaults to $0.0075 per segment, a common US pay-as-you-go rate, but your rate will differ by provider, destination country, and volume tier. Replace it with your actual rate — from your bulk SMS API provider or carrier contract — and the tool multiplies segments x rate instantly.

For campaign budgeting, multiply the per-message estimate by your recipient count: a 2-segment message at $0.0075 to 10,000 subscribers is $150, not $75. That is the number your finance team actually cares about. If you need done-for-you sending rather than DIY, you can order SMS marketing tools and services directly from our team.

Frequently Asked Questions

How many characters are in one SMS?

One SMS segment holds 160 characters in GSM-7 encoding or 70 characters in Unicode (UCS-2) encoding. Longer messages are split into concatenated segments of 153 (GSM-7) or 67 (Unicode) characters each.

What is GSM-7 encoding?

GSM-7 is the default 7-bit alphabet for SMS, covering basic Latin letters, digits, common punctuation, a set of accented characters, and Greek capitals. It fits 160 characters per segment and is the cheapest way to send text messages.

Why does my 150-character message count as 2 segments?

Almost certainly because one character — an emoji, curly quote, or em dash — flipped the entire message into Unicode mode, where a segment holds only 70 characters. Paste your text into the counter above to find the culprit; it highlights every non-GSM character.

Do emojis count as one or two characters?

Most emoji live outside the Basic Multilingual Plane, so in UCS-2 encoding each one counts as two units. Worse, a single emoji forces the whole message into Unicode mode (70/67 per segment), which is why emoji multiply costs.

How many characters can a Unicode SMS hold?

A single Unicode segment holds 70 UCS-2 units. Concatenated Unicode messages hold 67 units per segment after the first. Astral-plane characters such as emoji consume two units each.

How is SMS cost per segment calculated?

Multiply the number of segments by your provider's per-segment rate. Enter your rate in the cost field above — the tool does the math live. For campaigns, multiply again by the number of recipients.

Running WhatsApp campaigns alongside SMS? Try our free wa.me link generator to build click-to-chat links with prefilled messages, and our WhatsApp QR code generator for scan-to-chat codes on packaging and signage.