By · Updated

SMS Character Counter

GSM-7 or UCS-2 Segments, the 160 and 70 Character Limits, Cost Per Send

No ratings yet

OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.

How the SMS Character Counter works

This SMS character counter shows segments and encoding. Paste or type a text message and the readout shows how many SMS segments it will be billed as, which encoding the network will use, how many characters that leaves you, and what the send costs if you enter a per-segment price. If a single emoji, curly apostrophe or non-breaking space has tipped the message into Unicode and halved your limit, the table underneath names the culprit so you can replace it. Nothing leaves your browser.

SMS character counter: how it works

An SMS is not 160 characters. It is 140 bytes, and how many characters fit into 140 bytes depends on the alphabet used to encode them. That single fact explains almost every surprise on an SMS bill.

GSM-7. The original GSM 03.38 alphabet packs each character into seven bits, so 140 bytes holds 160 characters. It covers the Latin letters, digits, common punctuation, a handful of accented letters such as é, ü and ñ, and some Greek capitals. Twelve further characters live in an extension table and cost two septets each: the caret, curly braces, backslash, square brackets, tilde, pipe, form feed and, importantly, the euro sign. A message of 150 plain characters plus six euro signs is 162 septets and becomes two messages.

UCS-2. If the message contains even one character outside those tables, the whole message is re-encoded in UCS-2 at two bytes per character, and 140 bytes now holds only 70. Emoji are the obvious cause, but the usual culprits are invisible: a curly apostrophe pasted from Word, an em dash, an ellipsis character, a non-breaking space from a web page, or a Chinese or Arabic letter. Emoji outside the Basic Multilingual Plane, which is most of them, are encoded as a surrogate pair and cost two of the 70. The forcing-characters table lists every non-GSM character with its Unicode code point and a count, so a message that is mysteriously "Unicode" can be fixed in seconds by swapping ’ for ' and — for -.

Segmentation. A message that fits in one part uses the full 160 or 70. Anything longer is split into concatenated parts, and each part gives up six bytes to a User Data Header that tells the handset how to reassemble them, leaving 153 GSM-7 characters or 67 UCS-2 characters per part. So a 161-character GSM-7 message is two segments, a 307-character one is three, and a 71-character Unicode message is also two. The counter applies the single-part limit first and then the multipart limit, exactly as a carrier gateway does. Segments are what you pay for and what the recipient's phone stitches back together; most handsets show a long message as one bubble, but some older ones and some networks deliver the parts separately or out of order.

Cost. Enter your provider's price per segment, in any currency, and the readout multiplies it by the segment count; add a recipient count for a campaign total. Providers bill per segment per recipient, so a 320-character marketing message to 10,000 people is 30,000 segments, and one emoji in it turns the same text into 50,000.

Characters versus septets. The "Characters typed" line is the raw count you would see in a word processor. The billed figure counts extended GSM characters twice and, in UCS-2, surrogate-pair emoji twice, so the two numbers diverge whenever those appear. Line breaks count as one character in both encodings.

FAQ

Why does my 160-character message send as two?

Either it contains a GSM-7 extended character such as €, [, ], {, }, ~, ^, | or , each of which counts as two, or it contains a character outside GSM-7 altogether, which switches the whole message to UCS-2 and drops the limit to 70. The tables under the readout show which.

Which characters are safe for SMS?

Unaccented Latin letters, digits, spaces, line breaks and ordinary punctuation, plus the accented letters in the GSM alphabet: à, è, é, ì, ò, ù, ä, ö, ü, ñ, ç, å, ø, æ, ß and their listed capitals. Straight quotes are safe; curly quotes and dashes copied from a word processor are not.

Can I send an emoji in an SMS?

Yes, but the message becomes UCS-2 with a 70-character single-part limit, and most emoji count as two characters because they are encoded as a surrogate pair. A short message with one emoji is fine; a long one will double or triple its segment count.

Do the recipient's phone and network matter?

For counting, no: the 140-byte payload and the GSM-7 and UCS-2 alphabets are part of the SMS standard everywhere. Whether a very long concatenated message is reassembled cleanly depends on the handset, and some carriers cap concatenation at a few parts, so keeping campaigns under three segments is a common rule.

Is a space or line break free?

No. A space is one septet in GSM-7 and one character in UCS-2, and a line break is the same. A non-breaking space, however, is not in the GSM alphabet and will force the whole message into UCS-2, which is one of the commonest invisible causes of a doubled bill.

See also: all Writing & Editing tools, Lists & Lines, Markdown & HTML, Ciphers & Alphabets.

Related tools