How message character counts are calculated in text messages

When you send a text message, it’s broken into one or more segments before being delivered by the cellular carriers to the recipient. Each segment has a character limit.

Every character you use counts against a segment’s character limit. This includes the letters and numbers, as well as spaces, punctuation, your brand’s name at the beginning of each message, your shortened link, and required language like opt-out instructions and legal disclaimers. Every character counts.

While most characters count as one against a segment’s character limit, certain extended characters—such as special symbols, accented letters, and Unicode emojis—count as two (or more). These extended characters also require a different kind of encoding to be used on the message. When you change from standard encoding to special encoding, the number of characters permitted in a segment is reduced, meaning your message will require more segments to send than a message that doesn’t use these characters.

Tip: You can rely on the character and segment counter in Attentive’s message composer to see how many segments will be sent per message and how many characters remain before the message will require an additional segment. In the example below, the message will be sent as 3 segments.

Screenshot of Attentive message composer showing an estimated remaining character count and segment count, with a note explaining that messages exceeding a segment's character limit are split into multiple segments but appear as a single message to subscribers.

Troubleshooting character count and limit issues

There are many factors that affect character counts and character limits. If you’re not sure why your character limit dropped or why a message segment uses more characters than you expected, consider the following:

  • Encoding: If your message contains any extended characters (for example, many accented letters, special symbols, and Unicode emojis), the message's encoding changes. This reduces each segment’s character limit from 160 down to 70. See Text message encoding and character limits for more information.
  • Standard vs. extended characters: Most standard characters count as one character. Most extended characters count as two characters, but some (like Unicode emojis), count as more than two. See Standard characters (GSM-7) and Extended characters and Unicode emojis (UCS-2) for more information.
  • Punctuation, spaces, and line breaks: Most punctuation counts as one character. Spaces and line breaks also count as one character. See Punctuation, spaces, and line breaks for more information.
  • Copying and pasting from other applications: When you copy and paste text from other applications (like Microsoft Word), hidden formatting can inflate character count. You may also inadvertently copy and paste extended characters, like curly quotes (‘’), which can increase character count and reduce character limit. See Copying and pasting from other sources for more information.
  • Pre-appended brand name: Your brand name, which is pre-appended to all of your messages, counts against the character limit. See Pre-appended brand name for more information.
  • Message segment headers: If your message is sent in multiple segments, carriers include a header with additional data in order to stitch the message together on recipients’ devices. These headers use some characters, which count against the character limit. See Message segment headers for more information.
  • Opt-out language: Opt-out instructions for messages sent from toll-free numbers to AT&T subscribers in the US count against the character limit. See Opt-out language for more information.
  • Legal language for regions outside the US: Additional legal language is required for messages sent in regions other than the US. This language counts against the character limit. See Legal language for regions outside of the United States.
  • Short links: Attentive recommends adding a period and a space after short links when they're the last content in a message in order to suppress iOS’s default link preview. This counts against the character limit. See Short links for more information.
  • Personalizations: Personalizations (like subscriber first name) introduce some variability into character counts. See Personalizations for more information.

The sections below explain each of these factors in more detail.

Text message encoding and character limits

Before a message is sent, it's encoded into data bits that carriers transmit to individual handsets. The encoding determines how characters are represented, which in turn affects how many characters can fit in a single message segment. Text messages are typically encoded in one of two formats: GSM-7 or UCS-2.

GSM-7 (default) UCS-2
  • 160 characters per segment
  • Covers standard Latin letters, digits (0–9), and common punctuation
  • Counts almost all characters as one
  • 70 characters per segment
  • Includes many accented letters, special symbols, and especially emojis
  • Typically counts each extended character as two (or more, in the case of some Unicode emojis)

If you include any extended character in your message (for example á, ç, or ™), your entire message switches from GSM-7 to UCS-2 encoding. This means the character limit for every segment in the message drops from 160 to 70 (including segments that don’t have extended characters).

Tip: To see if your message includes special characters, watch the character counter in the message composer. If you add a character and the available number of characters suddenly drops, you likely have at least one special character in your message.

Read on for more details about how specific characters affect encoding and character limits.

How specific characters and formatting affect encoding and character count

Standard characters (GSM-7)

Standard (GSM-7) characters typically count as one character. These characters include Latin letters (including some with accents), numbers, and most punctuation.

Each character in most simple emojis, like :), count as a single character each.

There are some characters in the GSM-7 character set that count as two characters: | ^ € { } [ ] ~ \

Extended characters and Unicode emojis (UCS-2)

Extended (UCS-2) characters typically count as two characters.

These characters include:

  • many accented letters (for example, á and ç)
  • many symbols (for example, ™)

Many Unicode emojis (for example, 😂) count as two characters, but some emojis count as more than two if they are more recently created emoji.

Not all accented letters are extended. For example, lowercase à is a standard (GSM-7) character and counts as one character, but uppercase À is an extended (UCS-2) character and counts as two characters.

Similarly, not all symbols are extended. For example, the dollar sign ($) and pound sign (£) are part of the standard (GSM-7) character set, while the Euro symbol (€) is part of the extended (UCS-2) character set.

Punctuation, spaces, and line breaks

Almost all commonly used punctuation counts as a single character. Each space counts as a single character. Line breaks count as a single character. If you add extra blank lines or extra spacing for visual emphasis, that reduces the number of available characters.

Copying and pasting from other sources

When copying and pasting text from another source into the message composer, review the character and message segment count carefully. Pasting text from another source can introduce hidden formatting, which can increase the character count. To minimize this, we recommend pasting text using Cmd + Shift + V (Mac) or Ctrl + Shift + V (PC) to paste without formatting. If you see question marks (or other characters) replace special characters in the message, delete the text and enter it again.

Note: Be especially cautious when copying and pasting text with quotation marks and apostrophes. Applications like Microsoft Word and Google Docs often use curly quotes (‘ ’ and “ ”), which are not part of the standard GSM-7 character set. Including these can switch the message encoding to UCS-2, reducing the message segment’s character limit. To prevent this, be sure that your text uses straight quotes (' and ") instead.

Additional factors that affect character count

Pre-appended brand name

Your brand name is automatically pre-appended to your messages. The number of characters in your brand name, plus the colon and space afterward, take up some of a segment’s character limit.

Message segment headers

Whenever you send multiple segments as part of the same message, carriers add a header with additional data so that segments come together correctly on a subscriber’s device. Subscribers won’t see the header, but it does use up a few characters in each additional segment beyond the first one. For that reason, any segments beyond the first one won’t allow as many characters.

For messages that use standard characters (GSM-7), the header counts as 7 characters. For messages that use extended characters (UCS-2), the header counts as 3 characters.

Opt-out language

If you’re using a toll-free number, all text messages that you send to AT&T subscribers in the US are automatically appended with opt-out language, which counts against a message’s character limit. When opt-out language is appended to your messages, each character in that message is added to the character count.

When enabled, the Unsubscribe preview updates the character counter for AT&T subscribers.

The Attentive UI showing an email campaign editor with a highlighted mobile preview of opt-out language and a character count indicator showing

Note: Unsubscribe previews are unavailable for messages that will be sent outside of the United States. If you’ve chosen to auto-append unsubscribe language to any of your non-US regions, keep in mind that the character count (and potentially segment) count will increase for billing purposes. See Legal language for regions outside of the United States for more information.

Legal language for regions outside of the United States

If you send messages in regions outside of the United States, you’re required to include certain legal language in your messages, which varies by region. This language counts against a message’s character limit and can increase the overall number of segments in your message, even if you don’t change the message copy from region to region. For example, a message that requires only one segment in the US may require two or more segments in Canada due to the additional language required for messages in Canada.

For more information about compliance in regions outside the US, see our Compliance guides.

Short links

Short links appear without https:// or http:// in the message to save character space. However, our link shortener still requires all links to your website start with https:// or http://, maintaining link security while giving you more room for message content.

Also keep in mind that Attentive recommends adding a period and a space after links in your message if the link is the very last content in the message, which ensures that iOS link previews don't appear and increases CTR and revenue/message. Doing this adds two characters in addition to the character count of the link itself.

Personalizations

If you use personalizations in messages, the number of characters billed is based on the personalized copy for each subscriber, not the number of characters in the variable.

For example, if you include the {{subscriber.firstName}} personalization, and the subscriber’s first name is Tate, that counts as only 4 characters.

A mobile phone preview showing a promotional message with the subscriber's name 'Tate' highlighted in teal, promoting overnight shipping deals with a shopping cart icon and shortened URL.

However, if you don’t have subscriber information for a particular personalization, then a default value is used instead. For example, if you include {{subscriber.firstName}} but you don’t have the subscriber’s first name on file, then you’ll send the default value there instead, which counts as 5 characters.

A mobile phone preview displaying a promotional message with the default placeholder 'there' highlighted in teal, used when a subscriber's name is unavailable, advertising last-chance overnight shipping with a shopping cart icon and shortened URL.

You can optionally customize the default value used for this and other personalizations when writing messages.

Note: The character counter in the message composer can’t see the value the personalization will send to subscribers, and instead counts each character in the personalization itself – but you’ll only be billed for what is actually sent to the subscriber.

Media (images, GIFs, videos)

You can also add media, like images, GIFs, or videos to a message, which changes the message from an SMS message to an MMS message. MMS messages can include one media file. Like SMS messages, MMS message segments can have up to 160 characters of text if you’re using standard (GSM-7) characters, or up to 70 characters if your message includes extended (UCS-2) characters.

The message composer showing text explaining that adding media converts SMS to MMS, with an estimated character count of 59, an MMS indicator highlighted by a red arrow, and buttons for creating GIFs or adding images below.

Articles in this section

Was this article helpful?
5 out of 6 found this helpful