01How the count works
Three numbers decide what a text costs.
The encoding, the length in that encoding and the size of each part. One character outside GSM-7 changes all three.
-
GSM-7: 160 characters
Latin letters, digits and common punctuation, seven bits each: 160 in one SMS, 153 per part once a text is split.
-
Unicode: 70 characters
Everything else, from emoji and curly quotes to Cyrillic or Chinese, sixteen bits each: 70 in one SMS, 67 per part.
-
Parts: up to 6
A long text travels as several SMS joined on the phone, each billed. SMSMeteor accepts 6 parts: 918 GSM-7 or 402 Unicode characters.
| Encoding | 1 SMS | 2 parts | 3 parts | 4 parts | 5 parts | 6 parts |
|---|---|---|---|---|---|---|
| GSM-7 | 160 | 306 | 459 | 612 | 765 | 918 |
| Unicode (UCS-2) | 70 | 134 | 201 | 268 | 335 | 402 |
Maximum characters for each number of parts. A part carries a 6-byte header that joins the pieces on the phone, which is why parts hold 153 and 67 characters instead of 160 and 70.
02Reference
The GSM-7 alphabet, all 128 positions.
Every character in this table costs one position. The ten in the extension table cost two. Anything that appears in neither turns the message into Unicode.
| Low digit | 0x0_ | 0x1_ | 0x2_ | 0x3_ | 0x4_ | 0x5_ | 0x6_ | 0x7_ |
|---|---|---|---|---|---|---|---|---|
| _0 | @ | Δ | SP | 0 | ¡ | P | ¿ | p |
| _1 | £ | _ | ! | 1 | A | Q | a | q |
| _2 | $ | Φ | " | 2 | B | R | b | r |
| _3 | ¥ | Γ | # | 3 | C | S | c | s |
| _4 | è | Λ | ¤ | 4 | D | T | d | t |
| _5 | é | Ω | % | 5 | E | U | e | u |
| _6 | ù | Π | & | 6 | F | V | f | v |
| _7 | ì | Ψ | ' | 7 | G | W | g | w |
| _8 | ò | Σ | ( | 8 | H | X | h | x |
| _9 | Ç | Θ | ) | 9 | I | Y | i | y |
| _A | LF | Ξ | * | : | J | Z | j | z |
| _B | Ø | ESC | + | ; | K | Ä | k | ä |
| _C | ø | Æ | , | < | L | Ö | l | ö |
| _D | CR | æ | - | = | M | Ñ | m | ñ |
| _E | Å | ß | . | > | N | Ü | n | ü |
| _F | å | É | / | ? | O | § | o | à |
Extension table: two positions each
- FFESC 0x0A
- ^ESC 0x14
- {ESC 0x28
- }ESC 0x29
- \ESC 0x2F
- [ESC 0x3C
- ~ESC 0x3D
- ]ESC 0x3E
- |ESC 0x40
- €ESC 0x65
LF and CR are line breaks, SP is the space, ESC opens the extension table and FF is a page break no phone displays. National shift tables for Turkish, Spanish or Portuguese exist in the standard but most international routes do not use them.
03Common traps
Characters that quietly switch a text to Unicode.
Most come from word processors, phones that “smarten” punctuation and copy-paste from web pages. The counter flags each one and offers the plain version where there is one.
| Character | What it is | Where it comes from | Use instead |
|---|---|---|---|
| ’ ‘ | Curly apostrophes | Word processors, phones that smarten punctuation | ' |
| “ ” | Curly double quotes | Same sources, and most web pages | " |
| – — | En and em dashes | Auto-correct turns " - " into a dash | - |
| … | Ellipsis | Auto-correct, one character for three dots | ... |
| invisible | No-break and thin spaces | Copied from web pages, PDFs and spreadsheets | A plain space |
| invisible | Zero-width characters | Copied from chat apps, HTML editors and CMS fields | Nothing: delete them |
| á í ó ú ç â ê ô ã õ | Accents outside GSM-7 | Spanish, Portuguese, French, Italian text | The plain letter, or accept Unicode |
| ą ę ł ś ş ğ ı ő ű č ř | Central European and Turkish letters | Polish, Turkish, Hungarian, Czech text | The plain letter, or accept Unicode |
| 😀 👍 📦 | Emoji | Phones, marketing templates | Words, or budget for Unicode |
| Б Ж Я λ ψ | Cyrillic and Greek lowercase | Russian, Ukrainian, Greek text | Transliteration, or Unicode |
04Worked examples
What one character does to the bill.
One booking reminder, an apostrophe or an emoji apart, then the same reminder in Russian before and after transliteration. Costs use today's United States rate of $0.0084 per segment.
Hi Sam, your table for 4 at Luigi's is booked for Friday at 8:30 pm. Reply 1 to confirm or 2 to cancel. Questions? Call 020 7946 0321. See you soon!
Price a whole campaign| Version | Encoding | Characters | Segments | 10,000 to the US |
|---|---|---|---|---|
| As typed, straight apostrophe (') | GSM-7 | 148 | 1 | $84.00 |
| Curly apostrophe (’) instead | Unicode | 148 | 3 | $252.00 |
| One emoji added at the end | Unicode | 151 | 3 | $252.00 |
| The same reminder in Russian | Unicode | 85 | 2 | $168.00 |
| In Russian, transliterated | GSM-7 | 90 | 1 | $84.00 |
05Questions, answered
Counting questions, answered.
How many characters fit in one SMS?
160 in GSM-7, the default alphabet of Latin letters, digits and common punctuation, or 70 in Unicode. A longer text is split into parts of 153 GSM-7 or 67 Unicode characters, and every part is billed as one SMS. SMSMeteor accepts up to 6 parts, so 918 GSM-7 or 402 Unicode characters.
Why is a 150-character message billed as three SMS?
It contains at least one character outside GSM-7, often a curly apostrophe, a dash or an emoji, so the whole message is sent in Unicode: 70 characters for one SMS, 67 per part beyond that. 150 characters then make three parts. Replace that one character and the same text fits in a single 160-character SMS.
Do emoji count as one character?
No. Most emoji take two Unicode units, and skin tones, flags and family emoji take four or more. They also switch the whole message to Unicode, which cuts the room for every other character from 160 to 70.
Which characters count twice in GSM-7?
The ten characters of the extension table: € [ ] { } ^ ~ | \ and the form feed. Each takes two positions, an escape code and the character, but the message stays in GSM-7.
Do spaces and line breaks count?
Yes. Every space and every line break is one character in GSM-7 and one unit in Unicode, exactly like a letter.
Which accents work without Unicode?
GSM-7 includes é è ù ì ò à ä ö ü ñ, the capitals Ä Ö Ü Ñ É Ç Å Æ Ø, and å æ ø ß. Others such as á í ó ú ç â ê ô ã õ are not in the alphabet: use the plain letter, or accept the Unicode length.
Does SMSMeteor change my text to save segments?
No. The API never rewrites a message: it returns the encoding and the segment count with every message it accepts. The replacements offered by this counter are suggestions you apply yourself before sending.
Is what I type sent anywhere?
No. The counter runs on this page, in your browser. The text is not sent to SMSMeteor, not logged and not stored.
06More free tools
Count it, format it, price it.
Each tool runs on published data and in your browser: the GSM 03.38 tables, the numbering plan of every destination and the live rate card.
All tools