SMS character counter

Paste or type a text message. The counter shows whether it is sent as GSM-7 or UCS-2, how many SMS segments it uses and which characters cost you an extra part. Everything runs in your browser; nothing is sent anywhere.

GSM-7encoding
0characters
0septets / code units
1SMS segments
0left in this segment

How SMS length is counted

EncodingOne SMSEach part of a long SMS
GSM-7 (plain Latin text)160 characters153 characters
UCS-2 (any other character)70 characters67 characters

A single character outside the GSM-7 alphabet, such as a curly apostrophe, an emoji or a Cyrillic letter, switches the whole message to UCS-2. Characters like € [ ] { } ~ ^ \ | stay in GSM-7 but count as two. Long messages need a small header in each part, which is why the per-part limits are lower. Some providers split messages slightly differently, so treat the result as a close estimate.

The full explanation, with tests, is in SMS character limit: GSM-7 vs UCS-2 and a segment counter in JavaScript. The code is on GitHub under the MIT licence.

Checking real delivery

A counter tells you what you will pay for, not how a phone displays the message. To see a real text arrive, send it to a test number. Free public numbers on Temp SMS show incoming messages on a web page with no sign-up; anyone can read them, so use them only for test messages.