OnlineNotes Logo

Command Palette

Search for a command to run...

SMS Character Counter

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.

0 / 160
160 left in this segment

Message details

Encoding
GSM-7
Segments
0
Characters
0
Encoded length
0

Encoded length counts extension characters as 2 in GSM-7, and most emoji as 2 in UCS-2.

Limits at a glance

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.

Frequently asked questions

Why is an SMS limited to 160 characters?

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.

Why does one emoji drop my SMS limit to 70 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.

What is an SMS segment?

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.

Why do some characters count as 2?

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.

Related tools