SMS Messaging Length

The length of your text message matters. Knowledge is power.

GSM Encoding

GSM Encoding

Historically, SMS API claimed support for 160 ASCII Characters. This turned out to be oversimplified in two ways: the size limitation is actually more complicated, and ASCII is not the encoding of interest. What can actually fit into a single SMS (at least for GSM networks) is limited to 140 bytes.

The 160 maximum actually comes from the fact that you can encode 160 7-bit characters into 140 bytes. But even if all your characters are in ASCII, you're not guaranteed to fit in 160 characters. This is because the character encoding used in SMS is not ASCII, but GSM 03.38. Consequently,

Certain characters in GSM 03.38 require an escape character. This means they take 2 characters (14 bits) to encode. These characters include: |, ^, {, }, €, [, ~, ] and \.

Read more on our on GSM Encoding on our Knowledge Base.

Learn how does SendHub bill for long messages.

UCS-2 Encoding

If you send your SMS message using UCS-2 encoding, the number of characters per message is reduced to 70 characters. Some characters and symbols are not supported using the standard GSM character set, which causes your SMS message to automatically convert to UCS-2. The most common causes are curly “ and ” style apostrophes and accented é letters that are included when copying text from a Microsoft Word document into a SMS message, or use of foreign language characters (such as some Asian characters) and Emojis. (😃, 😎, J)

Multipart SMS Messages

When the message length exceeds 160 characters in case of 7bit encoding (or 70 characters for UCS-2 encoding), the message is split up to multiple separate SMS and sent to the handset separately as well.

To be able to concatenate the messages on the phone, special header (UDH) is set for each message, which states the order and message each part belongs to. Due to this special UDH, the length of each combined 7-bit message is shortened to 153 characters (67 characters for UCS-2).

Length Calculator – Choose automatic - http://chadselph.github.io/smssplit/

Further information on encoding - https://en.wikipedia.org/wiki/GSM_03.38