Contador de caracteres SMS.
Cole uma mensagem. Veja exatamente quantos segmentos vai custar, que codificação a operadora vai usar e que caracteres obrigam a mensagem a passar para UCS-2 de dois bytes.
Como funciona
A divisão 160 / 70 (e porque é que isso lhe custa dinheiro).
A codificação SMS é definida em 3GPP TS 23.038. Resumindo: cada mensagem é codificada como GSM-7 (7 bits, 160 caracteres/segmento) ou UCS-2 (16 bits, 70 caracteres/segmento). Um único caractere que não seja GSM-7 em qualquer lugar da mensagem a converte para UCS-2 — o seu limite de caracteres é reduzido em mais da metade, assim como o comprimento máximo antes que a operadora comece a cobrar por segmento.
Caracteres que parecem inofensivos mas obrigam a UCS-2
- Aspas tipográficas (curvas) (“ ” ‘ ’) — substituído automaticamente pelo macOS, iOS e pela maioria dos processadores de texto. Use aspas retas (" ') em vez disso.
- Travessões — e reticências… — também inserido automaticamente pela autocorreção. Use um hífen (-) e três pontos (...).
- Letras acentuadas não presentes na tabela de extensão GSM-7 — é ñ ü são aceitos; á í ó não (sem a extensão). O contador acima mostra exatamente qual caractere causou a mudança.
- Qualquer emoji — 😀 🎉 ✅ todos forçam UCS-2.
- Árabe, cirílico, chinês, japonês, coreano — idiomas inteiros fora do padrão GSM-7. UCS-2 é a única opção.
A matemática do multipart
Quando uma mensagem excede o limite de um único segmento, a operadora envolve-a num User-Data Header (UDH) para que o telemóvel recetor consiga juntar as partes de novo. Esse cabeçalho consome 7 caracteres de payload por parte — por isso, em mensagens multipart o limite cai para 153 (GSM-7) ou 67 (UCS-2) caracteres por segmento, em vez de 160 / 70.
A maioria das operadoras (e a BroadNet) fatura por segmento. O contador acima mostra o número de segmentos em tempo real — corte alguns caracteres até ficar abaixo do próximo limite e pode eliminar um segmento.
Pronto para enviar?
BroadNet oferece uma API REST, um binding SMPP, webhooks de status de entrega e um SDK oficial TypeScript, com especificação OpenAPI 3.1 para todas as outras linguagens. Solicite acesso para testes e responderemos em até um dia útil.