# UCS-2 e SMS Unicode

> O UCS-2 é a codificação de 16 bits que o SMS usa para qualquer texto que contenha caracteres fora do alfabeto GSM-7 — scripts não latinos, emoji, aspas curvas. Cada caractere ocupa dois octetos, pelo que um SMS UCS-2 único contém 70 caracteres e os segmentos concatenados contêm 67 cada. Um único caractere fora do GSM-7 força toda a mensagem para UCS-2.

- URL canônico: https://www.broadnet.me/pt/reference/ucs2-unicode-sms
- Idioma: pt
- Última atualização: 2026-07-18
- Editor: BroadNet (https://www.broadnet.me)

Como o SMS transporta Unicode via UCS-2 (16 bits): o limite de 70 caracteres por mensagem única, 67 por segmento concatenado, o que força o UCS-2 e a ressalva dos pares de substituição para emoji.

## Porque é que o SMS precisa de UCS-2

O GSM-7 cobre apenas 128 caracteres mais um pequeno conjunto de extensão. Tudo o resto — árabe, chinês, cirílico, hebraico, tailandês, emoji, e até caracteres tipográficos como aspas curvas e travessões — não é representável. Para esses, o SMS muda para UCS-2, uma codificação de 16 bits de largura fixa (efetivamente UTF-16 big-endian para o Plano Multilingue Básico). É sinalizado por data_coding 0x08.

## Capacidade: 70 e 67

O campo de dados de utilizador do SMS tem 140 octetos. A dois octetos por caractere, o UCS-2 cabe em 70 caracteres numa mensagem única. Quando uma mensagem é concatenada, o User Data Header de 6 bytes consome conteúdo, deixando 134 octetos — 67 caracteres por segmento. Isto é menos de metade da capacidade do GSM-7, e é por isso que a escolha de codificação tem um grande impacto no custo.

*Capacidade por mensagem por codificação*

| Codificação | SMS único | Por segmento concatenado |
|---|---|---|
| GSM-7 (7-bit) | 160 caracteres | 153 caracteres |
| Binário de 8 bits | 140 bytes | 134 bytes |
| UCS-2 (16-bit) | 70 caracteres | 67 caracteres |

## O que aciona o UCS-2

A codificação é tudo-ou-nada por mensagem: um único caractere fora do GSM-7 força a mensagem inteira para UCS-2, reduzindo a capacidade de 160 para 70. Os culpados comuns são fáceis de introduzir por acidente — um apóstrofo curvo de um processador de texto, um travessão, um emoji ou um nome não latino. Detetá-los antes de enviar é a maior alavanca sobre o custo do SMS.

*Caracteres que forçam UCS-2*

| Categoria | Exemplos |
|---|---|
| Emoji | 😀 ✅ 🚀 ❤️ |
| Pontuação tipográfica | ' ' “ ” – — … |
| Scripts não latinos | العربية · 中文 · Кириллица · עברית · ไทย |
| Letras acentuadas não presentes no GSM-7 | â ê î ô û ã õ ą ę ř |

## A ressalva dos pares de substituição

O UCS-2 é estritamente de 16 bits e cobre o Plano Multilingue Básico do Unicode. Os caracteres acima de U+FFFF — muitos emoji modernos, por exemplo — são representados em UTF-16 como pares de substituição de duas unidades de código de 16 bits, pelo que um único desses emoji consome quatro octetos (dois 'caracteres' UCS-2). Uma mensagem que parece ter um emoji pode, por isso, contar como dois para o limite de 70/67.

## Perguntas frequentes

### Quantos caracteres cabem num SMS Unicode?

70 caracteres numa mensagem UCS-2 única e 67 por segmento quando a mensagem é concatenada. Isto porque cada caractere tem 16 bits (dois octetos) contra o limite de 140 octetos de conteúdo do SMS.

### O que faz um SMS mudar para UCS-2?

Qualquer caractere isolado fora do alfabeto GSM-7 — um emoji, uma aspa curva, um travessão ou texto não latino — força a mensagem inteira para UCS-2. A codificação é escolhida por mensagem, não por caractere.

### O UCS-2 é o mesmo que UTF-16?

Quase. O UCS-2 é de 16 bits fixos e cobre o Plano Multilingue Básico. O SMS trata o conteúdo como UTF-16 big-endian, pelo que os caracteres acima de U+FFFF (muitos emoji) tornam-se pares de substituição e ocupam quatro octetos.

### Porque é que um emoji às vezes conta como dois caracteres?

Os emoji acima de U+FFFF são codificados como pares de substituição UTF-16 — duas unidades de código de 16 bits — pelo que um único glifo consome dois dos 70 (ou 67) lugares de caractere UCS-2 disponíveis.

### Como evito enviar UCS-2 acidentalmente?

Higienize a entrada antes de enviar: substitua aspas e travessões tipográficos pelos seus equivalentes ASCII, remova ou translitere acentos avulsos e verifique se há emoji. Um verificador GSM-7/Unicode assinala os caracteres exatos que forçam o UCS-2.

## Fontes

- [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)

## Relacionados

- [O conjunto de caracteres GSM-7](https://www.broadnet.me/pt/reference/gsm7-character-set)
- [Esquema de codificação de dados (DCS)](https://www.broadnet.me/pt/reference/data-coding-scheme-dcs)
- [Deteção e custo de codificação](https://www.broadnet.me/pt/reference/encoding-detection-and-cost)
- [Verificador GSM-7 / Unicode (ferramenta gratuita)](https://www.broadnet.me/pt/tools/gsm7-unicode-checker)
- [Calculadora de segmentos SMS (ferramenta gratuita)](https://www.broadnet.me/pt/tools/sms-segment-calculator)
