# Deteção de codificação e custo do SMS

> Detetar a codificação significa verificar se cada caractere está no alfabeto GSM-7; se sequer um não estiver, a mensagem inteira torna-se UCS-2 e a capacidade cai de 160 para 70 caracteres. Como o SMS é faturado por segmento, um único emoji ou aspa curva avulso pode duplicar ou triplicar o custo de uma mensagem.

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

Como detetar se o texto é GSM-7 ou UCS-2, que caracteres forçam silenciosamente o UCS-2 e como a codificação determina a contagem de segmentos — e, portanto, o custo — de cada SMS que envia.

## Como detetar GSM-7 vs UCS-2

A regra é simples e absoluta: se cada caractere da mensagem estiver presente na tabela básica ou de extensão GSM-7, a mensagem pode ser enviada como GSM-7; se algum caractere não estiver, a mensagem inteira tem de usar UCS-2. A deteção é, por isso, um teste de pertença a conjunto face ao alfabeto GSM-7, aplicado à string toda, lembrando que os dez caracteres de extensão contam como dois septetos cada.

*Lógica de deteção*

```text
for each character c in message:
  if c not in GSM7_BASIC and c not in GSM7_EXTENSION:
     encoding = UCS-2   # one stray char forces the whole message
     break
else:
  encoding = GSM-7
```

## Os caracteres que forçam silenciosamente o UCS-2

Os caracteres caros são os que os utilizadores introduzem sem reparar. Processadores de texto e telefones substituem automaticamente aspas e hífenes retos por versões tipográficas que não estão no GSM-7. Os emoji nunca estão no GSM-7. Nomes não latinos e qualquer letra acentuada fora do conjunto de acentos GSM-7 fazem o mesmo. Higienizar estes antes de enviar — substituindo pontuação tipográfica por ASCII, transliterando quando aceitável — mantém as mensagens em GSM-7.

*Gatilhos UCS-2 silenciosos comuns e substituições seguras*

| Caractere desencadeador | Substituição segura GSM-7 |
|---|---|
| ' ' (aspas simples curvas) | ' (apóstrofo reto) |
| “ ” (aspas duplas curvas) | " (aspas retas) |
| – — (meia-risca / travessão) | - (hífen) |
| … (reticências) | ... (três pontos) |
| emoji | (remover ou descrever em palavras) |
| espaço sem quebra | (espaço normal) |

## Como a codificação determina a contagem de segmentos

O SMS é cobrado por segmento, e a codificação define quantos segmentos uma mensagem precisa. Os limiares são fixos: o GSM-7 dá 160 num segmento e depois 153 por parte; o UCS-2 dá 70 e depois 67. Assim, uma mensagem de 75 caracteres é um segmento em GSM-7 mas dois em UCS-2. Um SMS promocional de 160 caracteres com um emoji salta de um segmento para três. A codificação é o maior fator controlável do custo por mensagem.

*Limiares de segmento*

| Segmentos | caracteres GSM-7 | Caracteres UCS-2 |
|---|---|---|
| 1 | 1 – 160 | 1 – 70 |
| 2 | 161 – 306 | 71 – 134 |
| 3 | 307 – 459 | 135 – 201 |
| n (n ≥ 2) | 153 × n | 67 × n |

## Controlo prático de custos

Três hábitos mantêm o custo do SMS previsível. Primeiro, valide e higienize os caracteres de cada mensagem de saída, assinalando tudo o que força o UCS-2. Segundo, mantenha os modelos dentro de um único segmento GSM-7 (≤160 caracteres) sempre que a mensagem o permita. Terceiro, meça a contagem de segmentos realizada por mensagem e por campanha, pois é isso — não a contagem de caracteres — que lhe é faturado. Uma calculadora de segmentos torna o compromisso visível antes de enviar.

## Perguntas frequentes

### Como sei se o meu SMS é GSM-7 ou UCS-2?

Verifique cada caractere face ao alfabeto GSM-7. Se todos os caracteres estiverem na tabela básica ou de extensão GSM-7, é GSM-7; se algum único caractere não estiver, a mensagem inteira é UCS-2. Um verificador GSM-7/Unicode automatiza isto e destaca os caracteres em falta.

### Quanto me custa um emoji num SMS?

Potencialmente muito. Um emoji força a mensagem inteira para UCS-2, reduzindo a capacidade de 160 para 70 caracteres. Uma mensagem de 160 caracteres com um único emoji passa de um segmento para três, triplicando aproximadamente o custo.

### Como é faturado um SMS de vários segmentos?

Cada segmento é faturado como um SMS separado. Uma mensagem que se divide em três partes é cobrada como três mensagens. É por isso que a codificação, que define a capacidade por segmento, é a maior alavanca do custo.

### Como posso manter as mensagens em GSM-7?

Higienize a entrada antes de enviar: substitua aspas curvas e travessões por equivalentes ASCII, remova emoji e translitere acentos avulsos quando aceitável. Mantenha os modelos dentro de 160 caracteres GSM-7 para que fiquem num segmento.

### É a contagem de caracteres ou de segmentos que determina o custo?

A contagem de segmentos. Duas mensagens com a mesma contagem de caracteres podem custar valores diferentes se uma usar UCS-2. Meça sempre os segmentos realizados por mensagem, não o comprimento bruto em caracteres.

## 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)
- [SMS UCS-2 e Unicode](https://www.broadnet.me/pt/reference/ucs2-unicode-sms)
- [Segmentação SMS e UDH](https://www.broadnet.me/pt/reference/sms-segmentation-concatenation-udh)
- [Calculadora de segmentos SMS (ferramenta gratuita)](https://www.broadnet.me/pt/tools/sms-segment-calculator)
- [Verificador GSM-7 / Unicode (ferramenta gratuita)](https://www.broadnet.me/pt/tools/gsm7-unicode-checker)
