SMS text messages use two encoding standards depending on the characters you type. Standard GSM-7 encoding allows up to 160 characters per message segment and covers the Latin alphabet plus common symbols. The moment you add an emoji, smart quote, or any character outside the GSM-7 set, the entire message switches to UCS-2 Unicode encoding, which cuts each segment to 70 characters. Multi-segment messages reserve space for concatenation headers, reducing usable characters to 153 (GSM-7) or 67 (UCS-2) per segment. Use this SMS Character Counter to stay within each limit and avoid unexpected per-message billing. The SMS preset is pre-activated below.
Apple iMessage uses a separate internet-based protocol when both sender and recipient have iMessage enabled — those messages appear in blue and are not billed as SMS. When iMessage is unavailable (for example, the recipient is on Android, iMessage is disabled, or the device has no data connection), Apple automatically falls back to SMS, applying the same GSM-7 and UCS-2 encoding rules. Any emoji in a message that falls back to SMS will trigger UCS-2 encoding, reducing the per-segment limit from 160 to 70 characters. Checking your message length before sending is the only reliable way to avoid surprise billing splits across carriers and devices.
To estimate your segment count manually, work through a two-step check before you send. First, identify whether any character in the message falls outside the GSM-7 alphabet: the full GSM-7 set covers standard Latin letters, digits, and common punctuation, but excludes emoji, curly apostrophes inserted by autocorrect, curly or directional quotation marks, en-dashes, em-dashes, and most accented characters beyond a short GSM-7 extended table. If even a single out-of-set character appears anywhere in the message, the entire message is encoded in UCS-2 Unicode — not only the word containing that character — and every segment shrinks from 160 characters to 70. Second, apply the concatenation header deduction for messages longer than one segment: carriers embed a 7-byte reassembly header inside each segment so that the recipient device can reconstruct the full message in the correct sequence. This header reduces usable space to 153 characters per GSM-7 segment and 67 per UCS-2 segment for any message that spills into a second segment or beyond. A concrete example: a 175-character message written entirely in GSM-7 sends as two segments of 153 and 22 characters, billed as two SMS. The same 175-character message containing one curly apostrophe — the version of "it's" that autocorrect inserts on many devices — becomes a three-segment UCS-2 message of 67, 67, and 41 characters, billed as three SMS. That single punctuation swap is the most frequent source of unexpectedly high costs in SMS marketing campaigns. In the US commercial messaging ecosystem, A2P channels — 10DLC-registered long codes, toll-free numbers, and dedicated short codes — have different throughput rates and carrier filtering rules, but all apply the same GSM-7 and UCS-2 segment mathematics at the individual message level. Writing in plain GSM-7, without emoji or smart punctuation, keeps messages within a single 160-character segment and maximises deliverability across every A2P channel type.