WordBench guide
SMS Character Limit: 160, or 70 With One Emoji
One SMS holds 160 characters when every character fits the 7-bit GSM-7 alphabet. A single emoji, curly apostrophe or non-Latin character switches the whole message to 16-bit UCS-2 and cuts that to 70. Longer messages are not truncated: they are split into segments of 153 characters in GSM-7 or 67 in UCS-2, and each segment is billed as a separate message.
Against platform limits
Each bar counts in the unit that platform actually uses, so the numbers differ from the plain character count on purpose.
As an SMS this is 0 segments in GSM-7 (0 septets, 160 left before the next one).
The same text, measured four ways
For plain English these four numbers are identical except the bytes. Add an emoji and they separate: a thumbs-up with a skin tone is one grapheme, two code points, four UTF-16 units and eight UTF-8 bytes.
The 160-character limit is not an arbitrary product decision. An SMS was designed to fit in the spare signalling capacity of a GSM network, which left a payload of 1,120 bits. The GSM 03.38 alphabet packs each character into 7 bits, and 1,120 divided by 7 is exactly 160. Everything else about SMS length follows from that one number.
That alphabet is small: basic Latin letters, digits, ordinary punctuation, a handful of Greek capitals, and a short list of accented European characters. Nine more characters live in an extension table and cost two septets each, because the handset has to be told to shift alphabets first. Anything outside both lists cannot be sent in GSM-7 at all.
When that happens the whole message, not just the offending character, is re-encoded in UCS-2 at 16 bits per character. The same 1,120-bit payload now holds 70 characters. So a 158-character message that reads perfectly well becomes a three-segment message the moment somebody pastes in a curly apostrophe from a word processor.
Paste a 150-character message made of plain letters, digits and straight punctuation. The counter reports GSM-7 encoding, one segment, and roughly ten septets of headroom left.
Now change one straight apostrophe to a curly one, or add a single emoji. The encoding flips to UCS-2, the limit drops from 160 to 70, and the same message becomes three segments and three times the send cost. The counter names the exact character that caused the switch.
Why does a longer text message cost more than one message?
Past the single-message limit the sender's phone or platform splits the text into a concatenated message. Each part carries a User Data Header telling the receiving handset how many parts there are and where this one belongs, so the phone can reassemble them into what looks like one long text.
That header consumes space inside the same fixed payload. In GSM-7 it costs the equivalent of seven characters, leaving 153 per segment. In UCS-2 it leaves 67. Carriers and messaging APIs bill per segment, which is why a 161-character message costs twice as much to send as a 160-character one, and why marketing teams obsess over the difference.
The arithmetic is worth internalising. In GSM-7, 160 characters is one segment, 306 is two, 459 is three. In UCS-2, 70 is one, 134 is two, 201 is three. A message that is one character over a boundary pays for a whole extra segment and gains almost nothing.
Which characters break GSM-7 encoding?
Every emoji, without exception. Curly or smart quotation marks and apostrophes, which word processors and note apps insert automatically in place of straight ones. Em dashes and en dashes. Ellipsis characters. Any Cyrillic, Greek lowercase, Arabic, Hebrew, Chinese, Japanese, Korean, Thai or other non-Latin script. Most accented letters beyond the small European set GSM-7 includes.
The most expensive of these is the curly apostrophe, precisely because nobody notices it. Typing an apostrophe on a phone keyboard usually produces the straight version, which is fine, but pasting a sentence from a document often brings the curly one, which is not. Retyping that single character can take a message from three segments back to one.
The nine extension-table characters are a milder trap. The caret, curly braces, square brackets, backslash, tilde, pipe and euro sign are all sendable in GSM-7, but each costs two septets instead of one, so a message full of brackets runs out of room sooner than its character count suggests.
How many segments is my text message?
Character counts at which an SMS crosses into another billed segment, for both encodings.
| Segments | GSM-7 characters | UCS-2 characters |
|---|---|---|
| 1 | 1 to 160 | 1 to 70 |
| 2 | 161 to 306 | 71 to 134 |
| 3 | 307 to 459 | 135 to 201 |
| 4 | 460 to 612 | 202 to 268 |
| 5 | 613 to 765 | 269 to 335 |
| 6 | 766 to 918 | 336 to 402 |
A single message uses the full 160 or 70. From two segments upward each part loses room to the User Data Header, leaving 153 or 67 per segment.
The GSM-7 alphabet, in full
Characters in the basic set cost one septet. The nine extension characters cost two, because they are sent as an escape plus the character. Anything not listed here forces the whole message into UCS-2.
| Group | Characters | Cost each |
|---|---|---|
| Latin letters | A to Z and a to z | 1 septet |
| Digits | 0 to 9 | 1 septet |
| Punctuation and symbols | space ! " # % & ' ( ) * + , - . / : ; < = > ? @ _ | 1 septet |
| Currency | $ £ ¥ ¤ § | 1 septet |
| Accented and special letters | à ä å æ Ä Å Æ Ç è é É ì ñ Ñ ò ö Ö ø Ø ß ù ü Ü ¡ ¿ | 1 septet |
| Greek capitals | Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ | 1 septet |
| Line control | line feed and carriage return | 1 septet |
| Extension table | ^ { } \ [ ] ~ | € | 2 septets |
Set out in the GSM 03.38 specification. Note what is missing: straight quotes are in, curly quotes are not; the hyphen is in, the en dash and em dash are not.
Frequently asked questions
How many characters is one text message? 160 when every character is in the 7-bit GSM-7 alphabet, which covers basic Latin letters, digits and ordinary punctuation. If the message contains any character outside that alphabet, including any emoji, the whole message is encoded in 16-bit UCS-2 and one message holds only 70 characters.
How many characters is one text message?
160 when every character is in the 7-bit GSM-7 alphabet, which covers basic Latin letters, digits and ordinary punctuation. If the message contains any character outside that alphabet, including any emoji, the whole message is encoded in 16-bit UCS-2 and one message holds only 70 characters.
Why does adding an emoji reduce my SMS limit to 70?
An SMS payload is a fixed 1,120 bits. GSM-7 spends 7 bits per character, giving 160. Emoji are not in the GSM-7 alphabet, so the message must use UCS-2, which spends 16 bits per character. 1,120 divided by 16 is 70. The change applies to the entire message, not just the emoji.
What happens if my message is longer than 160 characters?
It is not cut off. The message is split into concatenated segments that the receiving handset reassembles into one text. Each segment carries a User Data Header that eats into the payload, so segments hold 153 characters in GSM-7 or 67 in UCS-2, and each is billed separately.
Do spaces count toward the SMS character limit?
Yes. A space is a normal GSM-7 character costing one septet, exactly like a letter. Line breaks also count, as one septet each. Only the extension-table characters cost more than one.
Why do smart quotes break SMS encoding?
GSM-7 contains the straight apostrophe and straight double quote, but not the curly typographic versions that word processors substitute automatically. Pasting text from a document therefore often carries a character that is invisible to the eye but forces UCS-2 and cuts the limit from 160 to 70.
Does the counter on this page tell me how many segments I will be billed for?
Yes. It detects the encoding, counts septets for GSM-7 or UTF-16 code units for UCS-2, reports the segment count and the room left before the next segment starts, and names the specific character that forced UCS-2 when one did.