Products
WhatsApp Business APIWhatsApp chatbotWhatsApp marketingConversationsAI StudioSMS gatewayCloud call centerCompany
IndustriesDevelopersPricingInsightsWhatsApp API guideWhatsApp API by countryCompare UnecastPartnersAboutContactLog inFree tool, updated 7 November 2026
SMS character counter
Type or paste your message to see its length, its encoding and how many SMS parts it needs. One SMS holds 160 GSM-7 characters or 70 Unicode characters; longer messages carry 153 or 67 per part.
Counting runs in your browser. Nothing you type is sent or stored.
- Characters
- 0
- Encoding
- GSM-7
- SMS parts
- 0
- Left in this part
- 160
One SMS holds up to 160 characters in GSM-7.
Empty message.
Characters that force Unicode
- None. Your text fits the GSM-7 alphabet.
Characters that count as two
- None.
Limits from 3GPP TS 23.038 (alphabets) and 3GPP TS 23.040 (long messages). Checked 6 November 2026.
The short answer
An SMS carries 140 bytes of text. In the GSM-7 alphabet each character uses 7 bits, so 160 characters fit. In Unicode (UCS-2) each character uses 16 bits, so 70 fit.
A longer message is split into parts that the phone joins again. Each part gives 6 bytes to a joining header, so it carries 153 GSM-7 characters or 67 Unicode characters.
| Encoding | One SMS | Each part of a long SMS | Used for |
|---|---|---|---|
| GSM-7 | 160 characters | 153 characters | English letters, digits, common symbols and some accented letters |
| Unicode (UCS-2) | 70 characters | 67 characters | Arabic, Cyrillic, Hindi, Chinese, emoji and any other character outside GSM-7 |
Sources: ETSI TS 123 038 (3GPP TS 23.038), section 6.1.2.1.1 ("in 140 octets, it is possible to pack (140x8)/7=160 characters") and 6.2.3 (UCS2, 16 bits per character); 3GPP TS 23.040, 9.2.3.24.1 (concatenated short messages). Checked 6 November 2026.
How the counting works
GSM-7 first. The counter checks every character against the GSM 7-bit default alphabet in 3GPP TS 23.038. It has 128 positions: English letters and digits, common punctuation, some accented and Greek letters such as é, ñ, Ü and Δ, and an escape code.
Extension characters count as two. Nine more symbols, plus a page-break control, live in the GSM-7 extension table: ^ { } \ [ ~ ] | €. Each is sent as an escape code plus the character, so each uses two places.
One outside character switches everything. If any character is outside both tables, the whole message goes in Unicode (UCS-2). Then every character counts, including spaces and digits, in 16-bit units.
Long messages. Above 160 (GSM-7) or 70 (Unicode), the counter fills parts of 153 or 67 in order. It never splits a two-unit character, such as € or an emoji, across two parts, so a part can end one short.
Why 153 and 67? The joining header is 6 bytes: its length, an identifier, the data length, a reference number, the number of parts and the part number. In GSM-7, 6 bytes (48 bits) plus one fill bit take the space of 7 characters, leaving 153. In Unicode, 134 bytes are left, which is 67 characters.
Sources: 3GPP TS 23.038, 6.2.1.1 (extension table); 3GPP TS 23.040, 9.2.3.24 (user data header and fill bits); Unecast SMS API reference (6-byte header, 153 and 67 per part). Checked 6 November 2026.
Other languages, accents and emoji
- Some accented letters fit GSM-7. é, è, ù, ì, ò, à, ñ, Ñ, ü, ä, ö, ß, Å, Æ and Ø are in the GSM-7 alphabet, so many French, German, Italian and Nordic messages still fit 160 characters.
- Others force Unicode. á, í, ó, ú, ã, õ, â, ê and Turkish ı, ş and ğ are not in GSM-7, so one of them switches a Spanish, Portuguese or Turkish message to Unicode. Try the Español sample above.
- Greek capitals such as Δ, Ω and Σ are in GSM-7. Lowercase Greek is not.
- Non-Latin scripts such as Arabic, Cyrillic, Hindi, Chinese and Thai are always sent in Unicode: 70 characters in one SMS, 67 per part.
- Vowel signs count separately. In scripts such as Hindi, a letter with a vowel sign is two Unicode characters. For example, हि is ह plus ि, so it counts as two.
- Mixing languages does not help. One Arabic or Hindi word in an English message turns the whole message into Unicode.
- Emoji count as two units each, and emoji with skin tones or other modifiers count more.
- National language tables. 3GPP TS 23.038 also defines national language shift tables, for example for Turkish, Spanish, Portuguese and several languages of India, which keep some of these characters in 7 bits. Support depends on the network and the phone, so this counter uses the default GSM-7 alphabet and its extension table.
How to stay in one part
- Watch for hidden Unicode. Curly quotes (’ “ ”), long dashes (– —), the ellipsis (…) and no-break spaces often arrive when you paste from a word processor. Use the replace button above to swap them for plain characters.
- Count € and brackets twice. Each of
^ { } \ [ ~ ] | €uses two places in GSM-7. - Keep emoji for marketing. One emoji cuts a single SMS from 160 to 70 characters.
- Write the short version first. Put the key fact, such as the code or the amount, at the start.
- Split by language. Send a non-Latin script and English as separate messages if each then fits in fewer parts.
Parts and cost
Each part of a long message travels as its own short message, and the phone joins them. Check how your provider bills multi-part messages.
On Unecast, the SMS portal's message details show each message's part count and cost. Current SMS rates are on the bulk SMS gateway page. If you send over SMPP, set data_coding to 0 for GSM-7 or 8 for Unicode, as the SMS API reference shows.
Frequently asked questions
How many characters fit in one SMS?
One SMS holds 160 characters in the GSM-7 alphabet, or 70 characters in Unicode (UCS-2). A single character outside GSM-7 switches the whole message to Unicode.
Why are long messages split into 153 characters per part?
Each part of a long SMS starts with a 6-byte header that tells the phone how to join the parts. In GSM-7 that header takes the space of 7 characters, so each part carries 153. In Unicode each part carries 67.
Why did my message switch to Unicode?
It contains at least one character that is not in the GSM-7 alphabet, such as a curly apostrophe, a long dash, an emoji, an accented letter such as á, or any non-Latin script. The counter lists those characters under "Characters that force Unicode".
How many characters can an Arabic, Hindi or Chinese SMS have?
These scripts are sent in Unicode, so one SMS holds 70 characters and each part of a longer message holds 67. In scripts with vowel signs, such as Hindi, a letter you see as one can count as two or three.
Do emoji count as two characters?
Most emoji count as two, because they sit outside the 16-bit range and take a pair of 16-bit units. Emoji with a skin tone or other modifiers count more, because each modifier is a separate character.
Why does the euro sign count as two characters?
The euro sign and the symbols ^ { } \ [ ~ ] | are in the GSM-7 extension table. Each one is sent as an escape code plus the character, so it uses two of the 160 places.
Is my message sent anywhere when I use this counter?
No. The counting runs in your browser. Nothing you type is sent to Unecast or stored.
Ready to send SMS?
Send OTPs, alerts and campaigns from the SMS portal or the API, with your own approved sender ID.