read

How Is the Actual SMS Length Calculated?

Have you ever thought why SMS is limited to 160 characters? The reason is actually pretty simple. Back in 1985, the chairman of Global System for Mobile Communications (GSM) Friedhelm Hillebrand had a challenge of finding out how many characters should there be in a text message and standardize it. 

Friedhelm started typing out random sentences on his typewriter and found out that all the sentences ran under 160 characters. To back up his proposal for the GSM committee he researched a huge number of postcards and found out that most of the sentences contained fewer than 150 characters.

Telex machine

This is a Teletype Model 32 used for Telex service

He also analyzed Telex – telegraphy network for business professionals. Even though they didn’t have a limit on the characters Friedhelm found out that most of the messages contained approximately 150 characters as well. Thus, he concluded that 160 characters should be perfectly enough for any text message and GSM decreed that all mobile phones need to support it. But calculating the length of an SMS is a completely different story. 

Calculating SMS length 

In mobile telephony GSM 03.38 or 3GPP 23.038 is a character encoding used in GSM networks for SMS (Short Message Service), CB (Cell Broadcast) and USSD (Unstructured Supplementary Service Data). The 3GPP TS 23.038 standard (originally GSM recommendation 03.38) defines GSM 7-bit default alphabet which is mandatory for GSM handsets and network elements, but the character set is suitable only for English and a number of Western-European languages. 

Languages such as Chinese, Korean or Japanese must be transferred using the 16-bit UCS-2 character encoding. A limited number of languages, like Portuguese, Spanish, Turkish and several languages used in India written with a Brahmic script may use 7-bit encoding with national language shift table defined in 3GPP 23.038. For binary messages, 8-bit encoding is used. 

Is your head already spinning? Let me explain what it all means. 

When you say that an SMS is 160 characters long, this means that it can contain 160 characters from the Basic character set: 

GSM 7-bit alphabet

@£$¥èéùìòÇ'Øø'ÅåΔ_ΦΓΛΩΠΨΣΘΞ'ÆæßÉ !"#¤%&'()*=,-./01234

56789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ'¿abcdefghi

jklmnopqrstuvwxyzäöñüà 


Every character from the extension table (|^€{}[]~) takes up two regular characters though! 

So, when you type text “Hello World! ^_^” it seems to be 16 characters long, but actually takes up 18 characters on a regular message (due to the two carets “^”)! 

GSM 8-bit data encoding

When your message contains even one character that is not included in the GSM 7-bit alphabet (for example š, ž, –, ´, “), then the message is sent in the 8-bit data encoding. This includes nearly all messages in non-English and non-Western-European languages. 

The length of one message is 70 characters for an 8-bit SMS instead of the 160 characters for a 7-bit SMS. This needs to be considered when sending in any of these languages as the diminished message length sets rather large limitations on how much content can be transferred in one message. 

Note: Wish to know more about messaging through APIs? Read our ultimate guide to SMS APIs!

If a simple mistake is made, even something as simple as writing a text that is exactly 160 characters long, yet one space is accidentally added, then it automatically gets sent as two messages. This means that the amount of funds spent on the messages is also doubled as a multipart SMS counts as two separate SMS because the requests are separately made. 

In 7-bit and 8-bit a multipart message would look like this: 

7-bit: 160 + 160 = 320 306 

8-bit: 70 + 70 = 140 134 

When you send a message, that exceeds the length of one message, the message is sent as multipart message as mentioned before, yet the number of characters available does not quite double. Combining two messages as one large message takes up a few extra characters, so the length of two regular messages is 306 characters instead of 320 characters. This also applies to the SMS sent with the GSM 8-bit data encoding, making the total count 134 messages. 

So, if by a mistake one extra space and an accidental character not in the 7-bit set are also included, the original message intended to be one 160 character message, will end up being a three-part message that also costs three times as much. That’s why it is crucial to use tools to determine the true length of a message before sending. Mistakes can easily triple the invoice. 

The easiest way to determine the true length of an SMS is to use an SMS length calculator to check both the characters in use as well as any extra spaces or punctuations before you send a message through an SMS API.

Messente has a free web-based SMS length calculator for this use - give it a try!

Uku Tomikas
2019-01-17 00:00:00 UTC
2149780