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.
How SMS length is counted
| Encoding | One SMS | Each part of a long SMS |
|---|---|---|
| GSM-7 (plain Latin text) | 160 characters | 153 characters |
| UCS-2 (any other character) | 70 characters | 67 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.