Blog/15 maggio 2026·9 min di lettura

Limite Caratteri SMS: GSM-7 vs UCS-2 Guida Completa

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

ScenarioLimiteNote
SMS singolo, GSM-7160 car.Testo latino semplice, niente emoji
SMS singolo, UCS-270 car.Forzato da qualsiasi carattere non GSM-7
Segmento concatenato GSM-7153 car.UDH di 6 byte consuma 7 caratteri
Segmento concatenato UCS-267 car.UDH consuma 3 caratteri
Emoji2 unità UCS-2Forza UCS-2 sull'intero messaggio
iMessage / RCS / WhatsApp20.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.

Conta caratteri e segmenti SMS istantaneamente.

Apri il Contatore

Guide correlate

Frequently Asked Questions

Un singolo SMS contiene 160 caratteri se codificato in GSM-7, l'alfabeto a 7 bit di default per testo latino. Se il messaggio include qualsiasi carattere fuori dall'alfabeto (la maggior parte delle emoji, virgolette tipografiche, lettere accentate, cirillico, CJK), l'operatore passa a UCS-2 (Unicode 16 bit) e il limite scende a 70.

Quando superi 160 caratteri GSM-7 o 70 UCS-2, il messaggio viene spezzato in segmenti concatenati. Ogni segmento porta un header User Data Header (UDH) di 6 byte per permettere al telefono di ricomporre il messaggio, ecco perché i segmenti concatenati sono 153 (GSM-7) o 67 (UCS-2).

Visivamente sembrano un carattere, ma ogni emoji forza l'intero messaggio in UCS-2. La maggior parte conta 2 unità UCS-2 (coppia surrogata), quindi una singola emoji consuma 4 dei tuoi 70 caratteri. Aggiungere un'emoji a un messaggio di 100 caratteri può trasformare un invio da 1 segmento in 2.

GSM-7 è codifica 7 bit con circa 128 caratteri base più 10 di estensione, ottimizzata per SMS latini. UCS-2 è Unicode 16 bit usato quando un messaggio contiene caratteri fuori dall'alfabeto GSM-7. GSM-7 sta in 160 per segmento, UCS-2 in 70.

Quasi tutte le API SMS e gli operatori fatturano per segmento, non per messaggio. Un messaggio GSM di 320 caratteri sono 3 segmenti (153+153+14) ed è fatturato come 3. Un messaggio di 71 caratteri con un'emoji è anche 2 segmenti perché l'emoji forza UCS-2.

iMessage, RCS e WhatsApp non sono SMS. Funzionano su dati, non sul tubo SMS 160/70, e hanno limiti pratici nelle decine di migliaia (iMessage circa 20.000). Le regole GSM-7/UCS-2 si applicano solo quando un messaggio fa fallback a SMS.

Qualsiasi emoji, virgolette curve/tipografiche (quelle che Word e macOS sostituiscono automaticamente), trattini lunghi (em dash/en dash), carattere puntini di sospensione, lettere accentate fuori dalla tabella di estensione GSM, e qualsiasi carattere cirillico, greco, arabo, ebraico o CJK.

Non con SMS nativi. I limiti 160/70 sono nel cuore dello standard GSM. Se serve mandare contenuti lunghi, le opzioni sono: (1) accettare la fatturazione multi-segmento, (2) linkare a una pagina ospitata, o (3) passare a un canale data come iMessage, RCS o WhatsApp Business.