SMS character and segment calculator
Paste a text to see its encoding, segments and cost.
Runs in your browser with the same segment counter Unitpost bills with, and prices from our SMS rate card. Nothing you type is sent to Unitpost.
An SMS segment holds 160 characters in GSM-7 encoding or 70 in UCS-2. A longer message is split, and each part gives up room to the header that joins them: 153 GSM-7 or 67 UCS-2 characters per segment. One character outside the GSM-7 alphabet, such as an emoji or a curly quote, switches the whole message to UCS-2. Type or paste a message to see its encoding, segment count and cost per country.
GSM-7 and UCS-2
A message goes out in GSM-7 when every character is in the GSM 03.38 alphabet, and in UCS-2 when any character isn't. The encoding sets how many characters fit in a segment.
| Encoding | One segment | Per segment when split | Used when |
|---|---|---|---|
| GSM-7 | 160 | 153 | Every character is in the GSM alphabet: A to Z, digits, common punctuation and some accented letters such as é, è, à, ñ and ü. |
| UCS-2 | 70 | 67 | Any character is outside it: an emoji, a curly quote, á or ó, or a script such as Arabic, Chinese or Cyrillic. |
Split segments hold less because each one carries a header that tells the phone how to put the message back together. That makes the lengths below the cut-offs for each segment count:
| Segments | GSM-7, up to | UCS-2, up to |
|---|---|---|
| 1 | 160 | 70 |
| 2 | 306 | 134 |
| 3 | 459 | 201 |
| 4 | 612 | 268 |
| 5 | 765 | 335 |
Characters that count as two
Nine characters sit in GSM-7's extension table and take two places each, because each is sent as an escape code followed by the character: € ^ { } [ ] ~ | \.
So a message of 158 characters with two € signs uses 160 places and fits one segment, and one more € takes it to 162 places and two segments. Write EUR instead of €, and round brackets instead of square or curly ones, when space is tight.
What forces UCS-2
One character outside the GSM-7 alphabet, anywhere in the message, switches the whole message to UCS-2 and cuts a single segment from 160 characters to 70.
- Emoji. Most take two of the 70 places; flags and emoji with a skin tone take four or more.
- Curly quotes and apostrophes (’ “ ”), long dashes and the single-character ellipsis (…). Word processors and phone keyboards insert them as you type; the straight
'and", a hyphen and three full stops are all GSM-7. - Accented letters outside the alphabet, such as á, í, ó, ú, â or ç. The alphabet does include é, è, à, ñ, ü and ö.
- Other scripts such as Arabic, Chinese or Cyrillic.
- Invisible characters pasted from documents or web pages, such as a non-breaking space or a zero-width space.
The calculator lists the characters that switched your message, so you can replace them.
How to keep a message in one segment
Keep every character in the GSM-7 alphabet and the message at 160 characters or fewer, counting extension characters twice.
- Replace curly quotes, long dashes and the … character with their plain versions.
- Leave emoji out where cost matters: one emoji costs a single-segment message more than half its room.
- Use a short link on a domain you own instead of a long URL.
- Count the message with its variables filled in. A long name, or one with an á in it, can push one contact's copy into a second segment or into UCS-2. Unitpost counts the segments of each message as it is sent.
Unitpost bills SMS per segment, at one fixed rate per country that is the same on every paid plan: see SMS rates by country.
Frequently asked questions
How many characters fit in one SMS?
Why is my 160-character message two segments?
Do emoji make an SMS cost more?
Why are long messages split at 153 characters instead of 160?
Do spaces and line breaks count?
Is there a maximum SMS length?
Go deeper: SMS on Unitpost · SMS rates by country · SMS deliverability
Free tools
Send from a domain that checks out
Unitpost sets up SPF, DKIM and DMARC with you and keeps checking them.