Descripción general
El conjunto de caracteres GSM-7 es la codificación predeterminada utilizada para la mayoría de los mensajes SMS en todo el mundo.
Define un conjunto estándar de caracteres que pueden transmitirse de forma eficiente utilizando codificación de 7 bits, lo que permite enviar hasta 160 caracteres por SMS.
Cuando un mensaje incluye caracteres que no pertenecen a este conjunto, el sistema cambia automáticamente a Unicode (UCS-2), reduciendo el límite máximo a 70 caracteres por SMS.
Este artículo ofrece una referencia completa de los caracteres compatibles con GSM-7, detalla los caracteres extendidos (de doble longitud) y explica cómo estos afectan la segmentación y la facturación de los mensajes.
Conjunto de caracteres estándar GSM-7
La siguiente tabla muestra los caracteres básicos del alfabeto GSM-7, junto con su valor hexadecimal (HEX) y su equivalente ISO-8859-1.
Cada uno de estos caracteres consume una unidad dentro del límite de 160 caracteres de un SMS.
| HEX | Nombre del carácter | Carácter | ISO-8859-1 Hex |
|---|---|---|---|
| 0x00 | COMMERCIAL AT | @ | 40 |
| 0x01 | POUND SIGN | £ | A3 |
| 0x02 | DOLLAR SIGN | $ | 24 |
| 0x03 | YEN SIGN | ¥ | A5 |
| 0x04 | LATIN SMALL LETTER E WITH GRAVE | è | E8 |
| 0x05 | LATIN SMALL LETTER E WITH ACUTE | é | E9 |
| 0x06 | LATIN SMALL LETTER U WITH GRAVE | ù | F9 |
| 0x07 | LATIN SMALL LETTER I WITH GRAVE | ì | EC |
| 0x08 | LATIN SMALL LETTER O WITH GRAVE | ò | F2 |
| 0x09 | LATIN CAPITAL LETTER C WITH CEDILLA | Ç | C7 |
| 0x0B | LATIN CAPITAL LETTER O WITH STROKE | Ø | D8 |
| 0x0C | LATIN SMALL LETTER O WITH STROKE | ø | F8 |
| 0x0E | LATIN CAPITAL LETTER A WITH RING ABOVE | Å | C5 |
| 0x0F | LATIN SMALL LETTER A WITH RING ABOVE | å | E5 |
| 0x10 | GREEK CAPITAL LETTER DELTA | Δ | — |
| 0x11 | LOW LINE | _ | 5F |
| 0x12 | GREEK CAPITAL LETTER PHI | Φ | — |
| 0x13 | GREEK CAPITAL LETTER GAMMA | Γ | — |
| 0x14 | GREEK CAPITAL LETTER LAMBDA | Λ | — |
| 0x15 | GREEK CAPITAL LETTER OMEGA | Ω | — |
| 0x16 | GREEK CAPITAL LETTER PI | Π | — |
| 0x17 | GREEK CAPITAL LETTER PSI | Ψ | — |
| 0x18 | GREEK CAPITAL LETTER SIGMA | Σ | — |
| 0x19 | GREEK CAPITAL LETTER THETA | Θ | — |
| 0x1A | GREEK CAPITAL LETTER XI | Ξ | — |
| 0x20–0x7E | Letras latinas, dígitos y signos comunes | A–Z, a–z, 0–9, y símbolos como !, ?, #, &, etc. | — |
(Para consultar la tabla completa, ver especificación GSM 03.38.)
Caracteres extendidos GSM-7 (doble longitud)
Algunos caracteres dentro del conjunto GSM-7 requieren una secuencia de escape (0x1B) y, por lo tanto, cuentan como dos caracteres dentro del límite del mensaje.
Estos se conocen como caracteres de 14 bits, ya que se representan mediante un código de escape más el código del carácter.
| Carácter extendido | Secuencia de codificación | Cuenta como | Descripción |
|---|---|---|---|
| ^ | 0x1B0A | 2 | Acento circunflejo |
| { | 0x1B14 | 2 | Llave izquierda |
| } | 0x1B28 | 2 | Llave derecha |
| \ | 0x1B29 | 2 | Barra invertida (backslash) |
| [ | 0x1B2F | 2 | Corchete izquierdo |
| ~ | 0x1B3C | 2 | Virgulilla |
| ] | 0x1B3D | 2 | Corchete derecho |
| 0x1B40 | 2 | ||
| € | 0x1B65 | 2 | Símbolo de euro |
Importante:
Cada vez que se usa uno de estos caracteres, cuenta como dos caracteres en el cálculo total del mensaje.
Cálculo de caracteres y facturación
La facturación del SMS depende del número total de caracteres, incluyendo los espacios y los caracteres extendidos.
| Tipo de codificación | Máx. caracteres (un SMS) | Máx. caracteres por segmento (concatenado) |
|---|---|---|
| GSM-7 | 160 | 153 |
| Unicode (UCS-2) | 70 | 67 |
Al usar caracteres extendidos, recuerda contar dos unidades por cada uno de ellos al calcular la longitud total del mensaje.
Ejemplo:
Mensaje:
Tu saldo es de €100. Por favor confirma la transacción.
Total de caracteres visibles: 43
Carácter extendido:
€(cuenta como 2)Total ajustado: 44
Como está por debajo de 160, el mensaje se enviará en un solo SMS.
Fórmula de cálculo para SMS concatenados
Para mensajes que superen los 160 caracteres:
Fórmula:Número de SMS = Math.Ceiling(total_caracteres / 153)
Ejemplo:
Si un mensaje tiene 344 caracteres (contando los caracteres dobles):344 / 153 = 2.25 → redondeado hacia arriba = 3 SMS
El mensaje será facturado como tres SMS.
Compatibilidad de codificación en archivos FTP
Cuando se suben archivos de mensajes mediante FTP, la compatibilidad de los caracteres dependerá del formato de codificación del archivo.
Todos los archivos deben ser compatibles con el conjunto básico de caracteres GSM-7.
| Compatible | No compatible |
|---|---|
| Letras A–Z, a–z, números 0–9, espacios y puntuación GSM-7 | Caracteres no latinos, emojis, símbolos fuera del GSM-7 |
Ejemplos: @, #, !, &, +, : | Ejemplos: é, ñ, 😊, ß |
Si se detectan caracteres no soportados, el mensaje puede convertirse automáticamente a Unicode (UCS-2) o truncarse.
Saltos de línea en SMS
Los saltos de línea pueden insertarse utilizando el carácter de barra vertical (|), cuando la plataforma lo soporte.
Este símbolo actúa como separador de línea dentro del texto de un SMS o de una plantilla enviada por FTP.
Ejemplo:
Gracias por tu compra!|
Tu pedido llegará pronto.
Se mostrará en el teléfono como:
Gracias por tu compra!
Tu pedido llegará pronto.
Buenas prácticas
Verifica el tipo de codificación antes de enviar tus mensajes.
Evita caracteres fuera del conjunto GSM-7 para prevenir la conversión a Unicode.
Considera que los caracteres
^,{,},€, y otros similares cuentan como dos.Usa acortadores de enlaces para reducir el número de caracteres.
Prueba tus mensajes en la plataforma antes de realizar envíos masivos.
Resumen
El conjunto de caracteres GSM-7 permite codificar mensajes SMS de manera eficiente usando 7 bits por carácter.
Sin embargo, algunos símbolos extendidos requieren dos bytes, reduciendo el espacio disponible en un solo mensaje.
Comprender qué caracteres están soportados y cómo se codifican te ayudará a optimizar tus mensajes, garantizar una entrega más eficiente y controlar los costos de tus campañas SMS.