GSM-7 character checker: find the characters that break your SMS
One character outside the GSM-7 alphabet, such as a curly apostrophe, an en dash, an accented á or an emoji, switches the whole SMS to Unicode, which cuts each message from 160 characters to 70. Paste your text and this checker lists each such character, how often it appears and its GSM-7 replacement, then converts the message in one click.
Checked as you type, in your browser. Nothing is sent anywhere.
The full GSM-7 character set
Basic alphabet (one character each):
@ £ $ ¥ è é ù ì ò Ç Ø ø Å å Δ _ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Æ æ ß É ! " # ¤ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ¡ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ä Ö Ñ Ü § ¿ a b c d e f g h i j k l m n o p q r s t u v w x y z ä ö ñ ü à
Plus line feed and carriage return. Extension table (two characters each):
^ { } \ [ ~ ] | €
Sample result
2 characters push this text into Unicode, making it 2 SMS segments instead of 1.
- Encoding now
- UCS-2
- Segments now
- 2
- After converting
- 1 segment, GSM-7
What this means for you
Swap them for plain versions and each send uses half as many segments.
- Highlights every character outside GSM-7
- Suggests a GSM-7 replacement for each one
- Converts smart quotes, dashes and accents
- Shows segments before and after converting
- GSM-7
- Unicode
- SMS
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How do I find the characters that make an SMS Unicode?
- Paste your message or template. The check runs as you type.
- Read the table: each character outside GSM-7, how many times it appears, and what it will be replaced with. Red highlights have no GSM-7 equivalent and need editing by hand.
- Choose whether emoji should be removed, then press Convert to GSM-7.
- Copy the converted text into your SMS platform. The segment count shows what you saved per recipient.
Example
- You enter
- An SMS template that contains a long dash (–) and a curly apostrophe (’).
- You get
- Encoding is UCS-2 because of those 2 characters, so the text needs 2 segments; Convert to GSM-7 swaps them for - and ' and the same text fits 1 GSM-7 segment.
- Limits
- No usage limit and no account; character highlighting stops at the first 3,000 characters, but the counts cover the whole text.
What are GSM-7 characters?
GSM-7 characters are the 128-character default alphabet of SMS, plus a small extension table, and a message written only in them fits 160 characters. SMS was designed around a 7-bit alphabet of 128 characters, defined in 3GPP TS 23.038. A single message carries 140 bytes, which is 160 GSM-7 characters. When any character falls outside that alphabet, the whole message is sent as UCS-2, a 16-bit encoding, and the same 140 bytes hold only 70 characters.
Long messages are split into segments, and each segment gives up a few bytes to a header that lets the phone reassemble them: 153 characters per segment in GSM-7, 67 in UCS-2. A 200-character message is two segments in GSM-7 but three in Unicode, and SMS platforms bill per segment per recipient.
What are non-GSM characters?
Non-GSM characters are anything outside that alphabet: curly quotes, en and em dashes, many accented letters, emoji and most non-Latin scripts. Most Unicode switches are accidental. Word processors and phones turn straight quotes into curly ones (’ instead of '), two hyphens into an en or em dash, and three dots into an ellipsis character. Copying from a web page can bring a non-breaking space that looks exactly like a normal one. Each is replaced with its plain equivalent here.
Accented letters are mixed. GSM-7 includes some, such as é, è, ñ, ü and à, but not others, such as á, í, ó, ú, ã or ł. Those are converted to the unaccented letter, which keeps the message readable at the cost of the accent; decide whether that's acceptable for your audience. Emoji have no GSM-7 form at all, so the only fix is removing them.
Some characters are GSM-7 but cost two: € [ ] { } \ ^ ~ | come from an extension table and need an escape character. They don't switch the encoding, but they do use up the 160 faster.
Is this the same as the SMS character counter?
No: the counter is for writing and pricing a message, and this checker is for finding and fixing the characters that break it. The SMS character counter is for writing: it counts characters and segments live and estimates billed segments for a send. This checker is for fixing: it explains each offending character, converts accented letters and symbols as well as smart punctuation, and shows the full GSM-7 set so you know what's safe before you write.
Shorter messages save money per send, but the bigger waste on most lists is numbers that can't receive a text at all. See why SMS delivery fails for the common causes.
How many characters fit in one SMS?
| Encoding | Single message | Per segment when split |
|---|---|---|
| GSM-7 | 160 | 153 |
| UCS-2 (Unicode) | 70 | 67 |
Extension characters such as € and [ ] take two of the GSM-7 places.
Who uses this tool, and for what?
- SMS marketers
- Paste a campaign template before scheduling to make sure a stray curly quote isn't doubling the segment count across the whole list.
- Developers
- Check notification templates for characters your SMS provider will bill as UCS-2, and copy the GSM-7 version back into code.
- Support teams
- Fix canned replies written in a word processor, which adds smart quotes and dashes on its own.
- Businesses texting in Spanish or Portuguese
- See which accented letters are outside GSM-7 and decide whether dropping the accent is worth the cheaper segment.
What can’t this tool tell you?
- Characters with no GSM-7 equivalent, such as Chinese, Arabic or most symbols, can't be converted; the message stays Unicode until you remove them.
- Removing accents changes spelling. In some languages that changes meaning, so read the converted text before sending.
- Some carriers support national language shift tables (for example Turkish or Spanish) that this checker doesn't model.
- Your SMS provider may count or bill segments slightly differently; check its own calculator for the final number.
Common questions
- What are GSM-7 characters?
- They're the characters of the GSM 7-bit default alphabet from 3GPP TS 23.038: English letters and digits, common punctuation, some accented Western European letters such as é, ñ and ü, a few Greek capitals, and an extension table (€ [ ] { } \ ^ ~ |) whose characters cost two places each. The full list is under the tool.
- What are non-GSM characters?
- Anything outside the GSM-7 alphabet. The common accidental ones are curly quotes and apostrophes, en and em dashes, the ellipsis character, non-breaking spaces, accented letters such as á and ó, and emoji. One of them switches the whole SMS to Unicode, cutting it to 70 characters.
- What is the GSM-7 character count for an SMS?
- 160 characters in a single message, or 153 per segment once a message is split, because each segment carries a header. Extension characters such as € count as two. In Unicode the limits drop to 70 and 67.
- What is the GSM 03.38 character set?
- GSM 03.38 is the older name of the same standard, now 3GPP TS 23.038. The GSM 03.38 character set and the GSM-7 default alphabet are the same thing.
- Does this send my message anywhere?
- No. The check and the conversion run in your browser, so templates with customer details stay on your device.
Sources
The numbering plan only knows what a range was issued for.
In the US and Canada mobiles and landlines share the same prefixes, and anywhere a number can be ported or reassigned the range stops telling the whole story. A live carrier lookup asks the network data instead, which is what the Email + Phone plan adds.
- 5,000 live carrier lookups a month: real line type, including US numbers
- Carrier name for every number looked up
- Upload a CSV up to 100,000 rows; emails in the same file get a mailbox check
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.