Un singolo SMS è 160 caratteri se codificato in GSM-7, o 70 caratteri se codificato in UCS-2.Quale codifica usa l'operatore viene deciso automaticamente dal contenuto: se ogni carattere è nell'alfabeto GSM-7 di default, ottieni i 160 completi. Se anche uno solo è fuori, l'intero messaggio viene ricodificato in UCS-2 e il limite scende a 70.
Oltre 160/70, il messaggio si spezza in segmenti concatenati. Ogni segmento porta un header di 6 byte per permettere al telefono di ricostruire il messaggio, quindi gli SMS multi-segmento usano solo 153 (GSM-7) o 67 (UCS-2) caratteri per segmento. Operatori e API SMS fatturano per segmento, non per messaggio, ecco perché una singola emoji in un invio di 200 caratteri può tranquillamente trasformare un messaggio di 1 segmento in uno da 4.
Tabella di riferimento
| Scenario | Limite | Note |
|---|---|---|
| SMS singolo, GSM-7 | 160 car. | Testo latino semplice, niente emoji |
| SMS singolo, UCS-2 | 70 car. | Forzato da qualsiasi carattere non GSM-7 |
| Segmento concatenato GSM-7 | 153 car. | UDH di 6 byte consuma 7 caratteri |
| Segmento concatenato UCS-2 | 67 car. | UDH consuma 3 caratteri |
| Emoji | 2 unità UCS-2 | Forza UCS-2 sull'intero messaggio |
| iMessage / RCS / WhatsApp | 20.000+ car. | Non SMS. Regole diverse |
Codifica GSM-7: lo standard di 160 caratteri
GSM-7 è la codifica SMS di default definita nello standard GSM 03.38. Comprime 7 bit per carattere, ed è così che 160 caratteri entrano in 1.120 bit (140 byte) di payload SMS. L'alfabeto ha 128 caratteri base più una tabella di estensione di 10 caratteri. Tutto fuori da questi 138 forza UCS-2.
L'alfabeto base copre lettere latine senza accenti (A-Z, a-z), cifre 0-9, punteggiatura comune, spazio, line feed, carriage return, più un piccolo set di lettere accentate europee (à, è, ì, ò, ù, é, ñ, Ç, ä, ö, ü, ß e altre), maiuscole greche per notazione scientifica e pochi simboli di valuta.
Codifica UCS-2: quando sei costretto a 70
UCS-2 è codifica Unicode a 16 bit (2 byte). Lo stesso payload SMS di 140 byte sta in 70 unità UCS-2 per segmento, o 67 una volta concatenato. Gli operatori passano a UCS-2 nel momento in cui un singolo carattere è fuori da GSM-7. Non c'è conversione parziale. Un carattere ribalta l'intero invio.
La trappola nascosta delle emoji
La maggior parte delle emoji è codificata come coppie surrogate in UCS-2, ovvero ogni emoji prende 2 dei tuoi 70 caratteri. Le varianti con tono di pelle e le emoji combinate (famiglia, bandiera, professione) possono prenderne 4 o più.
Il costo reale dell'invio multi-segmento
Quasi tutte le API SMS commerciali fatturano per segmento. La matematica è semplice: costo totale = segmenti per messaggio * destinatari * tariffa per segmento. Dove diventa costoso è la trappola di codifica. Una campagna scritta con virgolette tipografiche raddoppia silenziosamente il conteggio segmenti e la bolletta.
Caratteri che forzano UCS-2
- Virgolette tipografiche. Word, Pages e macOS sostituiscono automaticamente ' e " con versioni curve. Tutte e quattro forzano UCS-2. Sempre passa il testo SMS per uno step di plain text prima di inviare.
- Em dash e en dash. Forzano UCS-2. Usa un trattino ASCII con spazi attorno, o spezza in due frasi.
- Carattere puntini di sospensione. Il singolo carattere ellipsis è UCS-2. Tre punti ASCII sono GSM-7 e visivamente identici.
- Tutte le emoji. Ogni emoji forza UCS-2 e la maggior parte costa 2 dei tuoi caratteri.
- Alfabeti non latini. Cirillico, greco minuscolo, arabo, ebraico, thailandese, devanagari, CJK: tutti UCS-2.
- Lettere accentate fuori dal GSM-7. La maggior parte delle accentate europee è in GSM-7, ma molte no (Ş, Č, Ł). Nel dubbio, passa il testo per un rilevatore GSM-7.
A2P 10DLC: regole SMS aziendali
A2P 10DLC (Application-to-Person, numero lungo a 10 cifre) è il framework USA che permette alle aziende di mandare SMS da un normale numero a 10 cifre invece di un short code. Le regole sui caratteri sono le stesse 160/70/153/67. La differenza è la compliance, il throughput e il prezzo.
iMessage / RCS / WhatsApp: quando i limiti non si applicano
- iMessage: il servizio Apple ha un limite morbido intorno a 20.000 caratteri. Nessuna distinzione GSM-7/UCS-2, niente fatturazione a segmenti.
- RCS (Rich Communication Services): il successore SMS della GSMA. Nessun limite fisso (tipicamente 8.000-20.000). Ora ampiamente supportato su Android e iOS 18+.
- WhatsApp: 65.536 caratteri per messaggio, niente segmentazione, niente regole di codifica.
- Telegram, Signal, Messenger: tutti praticamente senza limiti per uso normale.
Come ridurre il costo SMS
- Usa ASCII puro. Togli virgolette tipografiche, trattini eleganti e il carattere ellipsis prima di mandare.
- Salta le emoji se non guadagnano un clic. Ogni emoji forza UCS-2 e costa almeno 2 caratteri.
- Tieni gli SMS promozionali sotto 160 caratteri. L'ottimizzazione singola migliore è restare in 1 segmento GSM-7.
- Accorcia i link. Un URL https con UTM può mangiare 70+ caratteri da solo. Usa un shortener.
- Conta prima di inviare. Passa ogni campagna per un contatore che rileva codifica e mostra i segmenti. Usa il Contatore di Caratteri.