SMS Length and Encoding

This chapter provides guidelines on the ideal SMS character length and encoding

SMS Character Limit

The differences between single-part and multi-part SMS messages.

Background - GSM Encoding

The most commonly used encoding for SMS is the GSM-7 (Global System for Mobile Communications) character set defined by the GSM 03.38 standard.

The GSM-7 character set allows the following characters:

@ΔSP0¡P¿p
£_!1AQaq
$Φ"2BRbr
¥Γ#3CScs
èΛ¤4DTdt
éΩ%5EUeu
ùΠ&6FVfv
ìΨ'7GWgw
òΣ(8HXhz
ÇΘ)9IYiy
LFΞ-:JZjz
ØESC-;KÄkä
øÆ,<LÖlö
CRæ-=MÑmñ
Åß.>NÜnv
åÉ/?O§oà
  • LF is a Line Feed control.
  • CR is a Carriage Return control, or filler.
  • ESC is an Escape to extension table (maps to NBSP).
  • SP is a Space character.

There are also some characters in the GSM 03.38 Extension set that can be used for the cost of two characters:

| ^ € { } [ ] ~

📘

Unicode SMS

If you use a character outside of the GSM-7 set, the SMS type will need to be set as a Unicode. Unicode SMS limits the length of the SMS to 70 characters because of the different character encoding.

Single vs Multi-Part SMS

Using GSM-7 characters, the character limit for a single SMS message is 160 characters, however, most modern devices support SMS message concatenation, or multi-part messages.
When an SMS is sent with more than 160 characters (or 70 characters for Unicode), the message is split up into multiple message parts and are sent to the recipient's device separately. In order to concatenate the messages back together on the device, some characters are used to tell the device how they 'stitch together', allowing the message to appear as one, and in order, on the device. This affects how many characters are available in each message part:

Message PartsGSM-7 Character LimitUnicode Character Limit
116070
2306134
3459201
4612268
5765335

📘

Please refer to the Messaging API v2 chapter as it is recommended version of the SMS API.