Messaging · SMS
SMS segment calculator.
Paste your message to see whether it is sent as GSM-7 or UCS-2, how many segments it takes and how many characters are left in the last one.
Inputs
Segments and encoding
Enter your details.
How many characters in a text message?
A single SMS segment holds 140 bytes. In the default GSM-7 alphabet each character takes 7 bits, so one message fits 160 characters; in UCS-2 each character takes 2 bytes, so it fits 70. When a message is longer than one segment it is split, and each part loses some room to a User Data Header (Twilio gives 153 GSM-7 characters or 67 UCS-2 characters per segment). The maximum concatenated length Twilio documents is 1,600 characters in GSM-7 and 700 in UCS-2.
One character can change everything. If a message contains any character outside GSM-7, such as an emoji, a Chinese character or a curly quotation mark, the whole message switches to UCS-2. Twilio bills SMS per segment, so a 140-character message with one such character becomes two segments instead of one.
Worked example. 161 plain GSM-7 characters make 2 segments: 153 and 8. 152 plain characters plus one emoji is 154 UTF-16 units in UCS-2 (an emoji takes two), which is 3 segments of up to 67.
Extension characters. The GSM-7 extension table (3GPP TS 23.038) holds | ^ euro { } [ ~ ] and backslash. Each is sent as an escape code plus the character, so it counts as two. This tool also keeps a pair together in one segment; carriers and gateways may pack differently, so treat the count as the standard model, not a guarantee of what a given provider bills.
Frequently asked questions
How many characters are in a text message?
A single SMS segment holds 160 characters in GSM-7 or 70 in UCS-2. Longer messages are split into segments of 153 (GSM-7) or 67 (UCS-2) characters, according to Twilio.
What is the difference between GSM-7 and UCS-2?
GSM-7 is the 128-position default SMS alphabet, 7 bits per character. UCS-2 uses 16 bits per character and is the fallback for emoji and non-Latin scripts. One non-GSM-7 character puts the whole message in UCS-2.
Why is my 160-character text sent as two segments?
Usually one character is outside GSM-7, often a curly quote, an en dash or an emoji, so the message is encoded as UCS-2 with a 70-character limit. The checker above lists the characters responsible.
Does an emoji count as one character?
In SMS it takes two UTF-16 units in UCS-2, so it uses two of the 70 or 67 places. Emoji built from several code points, such as skin-tone or flag sequences, use more.
Is my message sent to a server?
No. The count runs in your browser and nothing you type is sent or stored.
Sources
Checked
- Twilio: How long can a message be?
- Twilio: What is GSM-7 character encoding?
- 3GPP TS 23.038: Alphabets and language-specific information
Twilio gives the 160/153 and 70/67 limits, the 1,600 and 700 maximums, the 152/66 toll-free figures and per-segment billing. 3GPP TS 23.038 defines the extension table. Packing an escape pair whole into one segment is this tool’s model; providers can differ. Runs entirely in your browser.
Scope
Segment counts follow the published standard and Twilio documentation. Your provider decides what it bills; check its pricing page and a real test send before a large campaign.