Search for a command to run...
Type or paste a text message to see its encoding, how many SMS segments it uses and how much room is left in the current segment.
These characters switched the message to Unicode (UCS-2):
Encoded length counts extension characters as 2 in GSM-7, and most emoji as 2 in UCS-2.
| Field | Limit | Source | Checked |
|---|---|---|---|
| GSM-7, single SMS | 160 characters | Twilio: SMS character limit | Checked October 2026 |
| GSM-7, per segment of a long SMS | 153 characters | Twilio: SMS character limit | Checked October 2026 |
| UCS-2, single SMS | 70 characters | Twilio: SMS character limit | Checked October 2026 |
| UCS-2, per segment of a long SMS | 67 characters | Twilio: SMS character limit | Checked October 2026 |
| Extension characters ^ { } \ [ ~ ] | € | Count as 2 | 3GPP TS 23.038 | Checked October 2026 |
Twilio notes one exception: toll-free multipart messages to the US or Canada carry 152 GSM-7 or 66 UCS-2 characters per segment. Some phones and carriers replace accented letters to stay in GSM-7, so the final count can differ slightly.
One SMS carries 140 bytes of text. The GSM-7 alphabet from 3GPP TS 23.038 packs each character into 7 bits, so 140 bytes hold 160 characters.
Emoji and most characters outside the GSM-7 alphabet need UCS-2 encoding, which uses 2 bytes per character. The whole message switches to UCS-2, so 140 bytes hold only 70 characters. Most emoji take 2 of those 70 slots.
A segment is one SMS part. Longer messages are split into segments and joined again on the phone. Each part loses a few characters to a joining header, so a multipart GSM-7 message holds 153 characters per segment and a UCS-2 message holds 67. Carriers usually bill per segment.
The characters ^ { } \ [ ~ ] | and € are in the GSM-7 extension table. Each one is sent as an escape code plus the character, so it uses 2 of the 160 places.