InfyCalculator
💻

SMS Character Counter

Count SMS characters and segments: 160 per message in GSM-7, 70 in Unicode, 153/67 per part when split. See which characters (emoji, á, í, ó, ú) switch your text to Unicode.

Message text
Loading calculator…

How it works

GSM-7: 1 segment ≤ 160 characters, otherwise ⌈length ÷ 153⌉ · Unicode (UCS-2): 1 segment ≤ 70, otherwise ⌈length ÷ 67⌉ · ^ { } [ ] ~ \ | € count as 2 in GSM-7; emoji count as 2 in UCS-2

SMS uses the 7-bit GSM 03.38 alphabet when every character is in it, giving 160 characters per message. One character outside it — an emoji, curly quotes, or Spanish á, í, ó, ú (é, ñ, ü and ¿¡ are included) — switches the whole message to UCS-2 Unicode, which allows only 70. Longer texts are split into concatenated segments that each lose 7 bytes to a header, leaving 153 GSM-7 or 67 Unicode characters, and carriers and SMS gateways bill per segment.

Worked example

“OTP 482913 - 10 min” has 19 characters, all in the GSM-7 alphabet, so it is encoded as GSM-7: 1 SMS segment with 160 − 19 = 141 characters left.

Sources: 3GPP TS 23.038 — Alphabets and language-specific information · GSM 03.38 (Wikipedia)

Frequently asked questions

How many characters can one SMS have?

160 characters with the standard GSM-7 alphabet, or 70 if the message contains any Unicode character such as an emoji or an accented letter outside the GSM set.

Why does my message count as 2 or 3 SMS?

Over 160 GSM-7 (or 70 Unicode) characters, the text is split into parts of 153 (or 67) characters, because each part carries a small header to rejoin them. 161 characters = 2 segments.

Do accents count as Unicode in SMS?

Some do. é, è, ù, ì, ò, à, ñ, ü, ä, ö, Ñ, Ü, É, ¿ and ¡ are in GSM-7; á, í, ó, ú and Á, Í, Ó, Ú are not, so a single “ó” cuts the limit from 160 to 70.

Do emoji count as one character?

Most emoji count as 2 in UCS-2 (they are surrogate pairs), and some, like flags or skin-tone variants, count as 4 or more. Any emoji also forces Unicode encoding.

Which characters count double in GSM-7?

The extension characters ^ { } [ ] ~ \ | and € take two slots each, because they are sent as an escape code plus the character.

Related calculators

This calculator is for educational purposes. Double-check important results before acting on them.