Know the size before you send

SMS Character Counter

See your message’s encoding, character usage and segments as you write.

  • Live segment count
  • Unicode detection
  • Private in your browser

Processed locally — your message is not uploaded or saved.

Message segments
0
Encoding
GSM-7
Units left in this segment
160
Typed characters
0
SMS units used
0
Current segment capacity
160

Start typing to see the encoding and how many segments your message needs.

This calculator follows the commonly documented standard rules (3GPP TS 23.038 and 23.040). Providers, carriers and countries can count, convert or bill differently, so confirm with your provider before relying on a segment count.

What is an SMS character counter?

A text message is not measured like other text. It travels in fixed-size packets, and how many characters fit in a packet depends on which characters you use. An SMS character counter works out the encoding your message needs, how many units of space it uses and how many segments it will be sent as.

That matters because long messages are split, and messaging providers generally charge for each segment. A message that reads as one short paragraph can turn out to be three segments because of a single character.

An ordinary character counter cannot tell you this. It counts what you see; SMS counts what has to be transmitted.

Why an SMS can be 160 characters, or far fewer

One SMS carries 140 bytes of content. What changes is how many characters can be packed into those bytes:

SMS capacity by encoding
EncodingUsed whenOne messageEach part when split
GSM-7Every character is in the GSM 7-bit alphabet160 units153 units
Unicode (UCS-2)At least one character is outside that alphabet70 units67 units

The switch is all or nothing. A message is sent in one encoding, so a single character from outside GSM-7 moves the entire message to Unicode and cuts the room available by more than half.

SMS character limits: GSM-7, Unicode and segments

What GSM-7 means

GSM-7 is the 7-bit alphabet defined for text messages in the mobile standard 3GPP TS 23.038. Using 7 bits per character instead of 8 is what lets 160 characters fit into 140 bytes. The alphabet holds unaccented English letters, digits, common punctuation, a set of accented letters such as é, è, ñ and ü, and Greek capitals.

It is smaller than people expect. It has no backtick, no tab, no curly quotation marks, no en or em dash, and no lower-case ç, á, í, ó or ú. Any of these makes a message Unicode.

The full GSM-7 character set

Why some characters use two units

A few characters are in GSM-7 but not in its basic table. They sit in an extension table and are sent as an escape code followed by the character, so each one takes two units of the 160:

^{}\[~]|€

A message full of brackets or prices in euros therefore runs out of room sooner than its character count suggests. The tool lists these characters separately when your message contains them.

Why some SMS characters count twice

Why an emoji changes the encoding

Emoji are not in GSM-7, so one emoji makes the whole message Unicode: 70 units instead of 160. Most emoji then cost two of those units each, because they are stored as a pair. An emoji with a skin tone uses four; a family emoji uses eleven.

Emoji are the obvious cause. The hidden one is typography. Phones and word processors quietly replace straight quotes with curly ones and three dots with an ellipsis character, and each of those also forces Unicode. When that happens the tool names the character and offers a GSM-safe replacement, which it applies only if you press the button.

How one emoji changes the length of an SMS

Worked examples

These rows are calculated by the same code as the tool above.

SMS examples
MessageEncodingCharactersUnitsCapacity
Your parcel arrives today between 2 and 4pm.Every character is in the basic GSM-7 table, so each one uses one unit.GSM-74444160
Price: €5 [approx]The euro sign and both square brackets come from the extension table and use two units each: 18 characters, 21 units.GSM-71821160
We’re open until 6pm.The typographic apostrophe is not in GSM-7, so the whole message is sent as Unicode with a 70-unit capacity.Unicode (UCS-2)212170
See you at 8 🎉The emoji forces Unicode and is itself a surrogate pair, so it uses two units.Unicode (UCS-2)141570

Why split messages hold less per part

When a message is too long for one SMS it is sent as several, and the receiving phone joins them back together. To make that possible each part begins with a small header saying which message it belongs to and where it goes in the sequence. The header uses space that would otherwise hold text, so a part carries 153 GSM-7 units rather than 160, or 67 Unicode units rather than 70.

This is why the jump from one segment to two happens at 161 units and the jump from two to three at 307, not at 321. It is also why the count is not always a simple division: a two-unit character that would straddle the end of a part is moved whole to the next one, leaving a unit unused.

Why your provider’s numbers may differ

This calculator applies the standard rules as they are written. Real delivery passes through a provider and one or more carriers, and each can change the result:

  • Some providers can automatically swap typographic characters for GSM-7 equivalents before sending, which keeps a message in GSM-7 that this tool would report as Unicode. It is usually a setting you have to turn on.
  • Providers set their own maximum message length or segment count, and it varies widely from one to the next.
  • Some carriers and sender types use slightly smaller parts, or do not join parts at all.
  • Some countries and carriers support national character tables that this tool does not model.

Use the result as the expected outcome under the standard, and check your provider’s own documentation or calculator before relying on it for cost.

Privacy

Your message is analysed inside your browser. It is not uploaded, not saved, not added to the page address and not included in analytics. This page does not send text messages; it only measures them. The privacy policy covers what the site does collect about visits.

Frequently asked questions

Why is SMS sometimes 160 characters?

A single SMS carries 140 bytes of content. The standard GSM-7 alphabet packs each character into 7 bits, and 140 bytes hold exactly 160 seven-bit characters. That is where the familiar number comes from. It only applies when every character in the message is in the GSM-7 alphabet.

Why does an emoji reduce SMS capacity?

Emoji are not in the GSM-7 alphabet. When a message contains even one, the whole message is sent in a Unicode encoding (UCS-2) that uses 16 bits per unit, so the same 140 bytes hold only 70 units. Most emoji then use two of those units each, and emoji built from several parts use more.

What is GSM-7?

GSM-7 is the 7-bit character set defined for text messages in the GSM mobile standard. It covers unaccented English letters, digits, common punctuation, a selection of accented letters and Greek capitals. It leaves out many characters people expect, including the backtick, the tab, curly quotation marks and most accented vowels.

Why do brackets sometimes use extra SMS space?

Square brackets, curly braces, the backslash, caret, tilde, vertical bar and the euro sign live in an extension table. Each is sent as an escape code followed by the character, so it uses two of the 160 units instead of one.

Do carriers always calculate segments identically?

No. This calculator follows the standard rules, which most providers document. In practice a provider may replace some characters before sending, cap the total length, use a different encoding for certain countries, or bill by its own rules. Treat the result as the expected outcome and confirm with your provider when the cost matters.

Why is a long message split into parts of 153 instead of 160?

Each part of a multi-part message starts with a small header that tells the receiving phone how to put the parts back together. The header uses space that would otherwise carry text, leaving 153 GSM-7 units per part, or 67 units per part for Unicode messages.

Is my message stored or sent anywhere?

No. The message is analysed in your browser and is not uploaded, saved or included in analytics. This tool does not send text messages; it only calculates their length.

Why One Emoji Can Change the Length of an SMS

No emoji is in the GSM 7-bit alphabet, so adding one sends the whole message as Unicode. The limit falls from 160 to 70, or from 153 to 67 per part, and most emoji then use two or more of those units themselves.

What Is GSM-7? A Simple Guide to SMS Encoding

GSM-7 is the default alphabet for SMS: 128 code positions of 7 bits each, which is how 140 bytes hold 160 characters. It covers basic Latin letters, digits and a few accents. Anything outside it forces the message into Unicode.

Why Some SMS Characters Count Twice

Ten characters in the GSM-7 extension table, including square brackets, braces and the euro sign, are sent as an escape code plus a second code. Each uses 2 of the 160 units, and the standard forbids dividing a pair between two parts.

Counting other kinds of text