O texto SMS pode ser enviado em uma de duas codificações, dependendo do conjunto de caracteres usados para escrever a mensagem.
Se o texto contiver apenas os caracteres da tabela acima, o SMS será enviado em codificação GSM:
@ | Δ | SP | 0 | ¡ | P | ¿ | p |
£ | _ | ! | 1 | A | Q | a | q |
$ | Φ | " | 2 | B | R | b | r |
¥ | Γ | # | 3 | C | S | c | s |
è | Λ | ¤ | 4 | D | T | d | t |
é | Ω | % | 5 | E | U | e | u |
ù | Π | & | 6 | F | V | f | v |
ì | Ψ | ' | 7 | G | W | g | w |
ò | Σ | ( | 8 | H | X | h | x |
Ç | Θ | ) | 9 | I | Y | i | y |
LF | Ξ | * | : | J | Z | j | z |
Ø | + | ; | K | Ä | k | ä | |
ø | Æ | , | < | L | Ö | l | ö |
CR | æ | - | = | M | Ñ | m | ñ |
Å | ß | . | > | N | Ü | n | ü |
å | É | / | ? | O | § | o | à |
CR - caráter de retorno de carruagem
LF - caráter de quebra de linha
SP - caráter de espaço
Esta codificação permite que você envie até 160 caracteres em uma mensagem SMS. Observe também que na codificação GSM-7 há alguns caracteres que são contados como dois caracteres ao calcular o comprimento do SMS, abaixo está uma tabela de tais caracteres:
^ | { | } | \ | [ | ~ | ] | | | € |
Se pelo menos um caractere não codificado estiver presente, a mensagem SMS será enviada em codificação Unicode. Tal mensagem pode conter até 70 caracteres. Somente caracteres da tabela Unicode (UTF-8) com códigos na faixa de U+0000 a U+9999 são suportados, todos os outros caracteres não são suportados no momento.
O comprimento de uma única mensagem que consiste apenas de caracteres do alfabeto GSM é de 160 caracteres.
O comprimento de uma única mensagem Unicode é de 70 caracteres.
Se uma mensagem SMS excede o comprimento especificado, ela é dividida em partes - segmentos.
Cada segmento SMS contém um cabeçalho especial (vários caracteres de informações de serviço) para concatenação posterior no lado do destinatário, portanto, o comprimento máximo de um segmento em uma mensagem longa é de 153 caracteres na codificação GSM e 67 caracteres em Unicode.
O comprimento máximo de um SMS é de 140 bytes. Cada caractere no alfabeto GSM é codificado com 7 bits (exceto por alguns que são codificados com 14 bits). Isto permite até 160 símbolos (140*8/7=160) em 140 bytes alocados para texto SMS. Se no texto SMS for usado até mesmo um caractere não-GSM, todo o texto é transmitido em codificação Unicode. Neste caso, o número permitido de caracteres em uma única mensagem é reduzido para 70, já que em Unicode cada caractere é codificado usando 16 bits (140*8/16=70).
Para mensagens SMS longas é usado um cabeçalho (ou UDH), que contém 6 bytes de informações de serviço, que leva 7 caracteres quando se usa somente caracteres latinos ou 3 caracteres quando se usa Unicode. Assim, o comprimento máximo de texto em um segmento é de 153 caracteres para GSM e 67 caracteres para codificação Unicode.
Número de segmentos em SMS | Número de caracteres em SMS | |
---|---|---|
Codificação GSM | Codificação Unicode | |
1 | 160 | 70 |
2 | 306 | 134 |
3 | 459 | 201 |
4 | 612 | 268 |
5 | 765 | 335 |
6 | 918 | 402 |
7 | 1071 | 469 |
8 | 1224 | 536 |
9 | 1377 | 603 |
10 | 1530 | 670 |