# UCS-2 e SMS Unicode

> UCS-2 è la codifica a 16 bit che gli SMS usano per qualsiasi testo contenente caratteri esterni all'alfabeto GSM-7 — scritture non latine, emoji, virgolette tipografiche. Ogni carattere occupa due ottetti, quindi un singolo SMS UCS-2 contiene 70 caratteri e i segmenti concatenati ne contengono 67 ciascuno. Un solo carattere non-GSM-7 impone l'intero messaggio a UCS-2.

- URL canonico: https://www.broadnet.me/it/reference/ucs2-unicode-sms
- Lingua: it
- Ultimo aggiornamento: 2026-07-18
- Editore: BroadNet (https://www.broadnet.me)

Come gli SMS trasportano Unicode tramite UCS-2 (a 16 bit): il limite di 70 caratteri per singolo messaggio, 67 per segmento concatenato, cosa impone UCS-2 e l'insidia delle coppie surrogate per le emoji.

## Perché gli SMS hanno bisogno di UCS-2

GSM-7 copre solo 128 caratteri più un piccolo insieme di estensione. Qualsiasi altra cosa — arabo, cinese, cirillico, ebraico, thai, emoji, e persino caratteri tipografici come le virgolette curve e i trattini medi — non è rappresentabile. Per questi, gli SMS passano a UCS-2, una codifica a larghezza fissa di 16 bit (di fatto UTF-16 big-endian per il Basic Multilingual Plane). È segnalata da data_coding 0x08.

## Capacità: 70 e 67

Il campo dei dati utente dell'SMS è di 140 ottetti. A due ottetti per carattere, UCS-2 fa entrare 70 caratteri in un singolo messaggio. Quando un messaggio è concatenato, l'User Data Header di 6 byte consuma payload, lasciando 134 ottetti — 67 caratteri per segmento. È meno della metà della capacità di GSM-7, ed è per questo che la scelta della codifica ha un forte impatto sui costi.

*Capacità per messaggio in base alla codifica*

| Codifica | Singolo SMS | Per segmento concatenato |
|---|---|---|
| GSM-7 (7-bit) | 160 caratteri | 153 caratteri |
| Binario a 8 bit | 140 byte | 134 byte |
| UCS-2 (16-bit) | 70 caratteri | 67 caratteri |

## Cosa attiva UCS-2

La codifica è tutto-o-niente per messaggio: un solo carattere esterno a GSM-7 impone l'intero messaggio a UCS-2, riducendo la capacità da 160 a 70. I colpevoli comuni sono facili da introdurre inavvertitamente — un apostrofo curvo da un elaboratore di testi, un trattino lungo, un'emoji o un nome non latino. Rilevarli prima dell'invio è la leva più importante sul costo degli SMS.

*Caratteri che impongono UCS-2*

| Categoria | Esempi |
|---|---|
| Emoji | 😀 ✅ 🚀 ❤️ |
| Punteggiatura tipografica | ' ' “ ” – — … |
| Script non latini | العربية · 中文 · Кириллица · עברית · ไทย |
| Lettere accentate non presenti in GSM-7 | â ê î ô û ã õ ą ę ř |

## L'insidia delle coppie surrogate

UCS-2 è strettamente a 16 bit e copre il Basic Multilingual Plane di Unicode. I caratteri oltre U+FFFF — molte emoji moderne, ad esempio — sono rappresentati in UTF-16 come coppie surrogate di due unità di codice a 16 bit, quindi una singola di queste emoji consuma quattro ottetti (due 'caratteri' UCS-2). Un messaggio che sembra una sola emoji può perciò contare come due rispetto al limite di 70/67.

## Domande frequenti

### Quanti caratteri entrano in un SMS Unicode?

70 caratteri in un singolo messaggio UCS-2 e 67 per segmento quando il messaggio è concatenato. Questo perché ogni carattere è di 16 bit (due ottetti) rispetto al limite di 140 ottetti del payload SMS.

### Cosa fa passare un SMS a UCS-2?

Qualsiasi singolo carattere esterno all'alfabeto GSM-7 — un'emoji, una virgoletta curva, un trattino lungo o testo non latino — impone l'intero messaggio a UCS-2. La codifica è scelta per messaggio, non per carattere.

### UCS-2 è uguale a UTF-16?

Quasi. UCS-2 è a 16 bit fissi e copre il Basic Multilingual Plane. Gli SMS trattano il payload come UTF-16 big-endian, quindi i caratteri oltre U+FFFF (molte emoji) diventano coppie surrogate e occupano quattro ottetti.

### Perché a volte un'emoji conta come due caratteri?

Le emoji oltre U+FFFF sono codificate come coppie surrogate UTF-16 — due unità di codice a 16 bit — quindi un singolo glifo consuma due dei 70 (o 67) slot di caratteri UCS-2 disponibili.

### Come evito di inviare inavvertitamente UCS-2?

Sanificate l'input prima dell'invio: sostituite virgolette e trattini tipografici con i loro equivalenti ASCII, rimuovete o traslitterate gli accenti spuri e verificate la presenza di emoji. Un verificatore GSM-7/Unicode segnala i caratteri esatti che impongono UCS-2.

## Fonti

- [3GPP TS 23.038 — alphabets and data coding](https://www.3gpp.org/dynareport/23038.htm)
- [3GPP TS 23.040 — SMS technical realization](https://www.3gpp.org/dynareport/23040.htm)

## Correlati

- [Il set di caratteri GSM-7](https://www.broadnet.me/it/reference/gsm7-character-set)
- [Schema di codifica dei dati (DCS)](https://www.broadnet.me/it/reference/data-coding-scheme-dcs)
- [Rilevamento della codifica e costo](https://www.broadnet.me/it/reference/encoding-detection-and-cost)
- [Verificatore GSM-7 / Unicode (strumento gratuito)](https://www.broadnet.me/it/tools/gsm7-unicode-checker)
- [Calcolatore di segmenti SMS (strumento gratuito)](https://www.broadnet.me/it/tools/sms-segment-calculator)
