Codificación de caracteres SMS
Explica cómo GSM-7 y Unicode afectan la longitud, la segmentación y el costo de tus mensajes SMS.
Conocer la codificación de caracteres es esencial para gestionar la longitud del mensaje, la segmentación y el costo. Los mensajes con caracteres especiales o alfabetos extendidos (letras acentuadas, símbolos o escrituras no latinas) requieren una codificación adicional, lo que puede reducir la cantidad de caracteres permitidos por segmento. Incluso un solo carácter no estándar puede cambiar el modo de codificación, dividir el mensaje en varios segmentos y aumentar los costos de entrega.
Esta página explica cómo la codificación afecta el tamaño del mensaje, cuándo ocurren los cambios de codificación y qué recomendaciones seguir para minimizar la segmentación.
Qué afecta el conjunto de caracteres
Al redactar mensajes, ya sea desde la interfaz de la plataforma o desde las API, el conjunto de caracteres que utilices afecta:
- El tipo de codificación (GSM-7 o Unicode).
- El límite de longitud del mensaje.
- El costo por mensaje, ya que los mensajes que superan cierta longitud se dividen en múltiples segmentos.
Comprender qué caracteres activan Unicode te ayuda a mantener los mensajes dentro de un solo segmento y evitar comportamientos inesperados en la facturación o la entrega.
Codificación GSM-7
GSM-7 es un estándar de codificación de 7 bits diseñado para SMS. Cuando tu mensaje contiene solo caracteres cubiertos por GSM-7 (incluyendo su subconjunto extendido), el sistema utiliza GSM-7.
- Para un mensaje totalmente codificado en GSM-7, la longitud máxima es de 160 caracteres (un segmento).
- Si el mensaje supera los 160 caracteres, el sistema lo divide en múltiples segmentos (SMS concatenados). Cada segmento permite normalmente unos 153 caracteres, porque parte de la carga útil se utiliza para los metadatos de concatenación.
Tabla de símbolos GSM-7
La tabla del manual enumera los caracteres admitidos por GSM-7. Se reconocen como caracteres SMS estándar, aunque su visualización en el teléfono del destinatario puede variar según la compatibilidad del terminal y el soporte de fuentes. Incluye, entre otros, el alfabeto latín básico, los dígitos del 0 al 9, signos de puntuación seleccionados y símbolos como @, £, $, ¥, è, é, ù, ì, ò, Ç, Ø, ø, Å, å, Δ, Φ, Γ, Λ, Ω, Π, Ψ, Σ, Θ, Ξ, Æ, æ, ß, É, Ä, Ö, Ñ, Ü, §, ä, ö, ñ, ü, à, ¤, ¡ y ¿.
Caracteres de escape GSM-7
Los siguientes caracteres están incluidos en GSM-7, pero requieren una secuencia de escape, por lo que cada uno cuenta como dos caracteres para la longitud total del mensaje:
^, {, }, \, [, ], ~, |, €
Codificación Unicode (UCS-2)
Si el mensaje contiene cualquier carácter no compatible con GSM-7, el sistema cambia la codificación a Unicode (UCS-2).
- Bajo Unicode, el límite cae a unos 70 caracteres por segmento. Cada carácter se cuenta como dos, por lo que el límite baja de 160 a 70.
- Cuando hay concatenación bajo Unicode, cada segmento subsiguiente transporta típicamente unos 67 caracteres, debido a la sobrecarga de metadatos.
Un solo carácter que no sea GSM-7 activa el límite inferior y puede aumentar sustancialmente los segmentos y el costo.
GSM-7 frente a Unicode (UCS-2)
| Tipo de codificación | Conjunto de caracteres | Máx. caracteres (SMS único) | Máx. caracteres por segmento (concatenado) | Casos de uso comunes |
|---|---|---|---|---|
| GSM-7 | Alfabeto latín básico, dígitos y marcas de puntuación seleccionadas | 160 | 153 | Inglés estándar o idiomas basados en latín sin acentos ni símbolos especiales |
| Unicode (UCS-2) | Soporta todos los caracteres no latinos, guiones globales, símbolos y emojis | 70 | 67 | Mensajes con caracteres no latinos, letras acentuadas, emojis o símbolos complejos |
La codificación se determina automáticamente por los caracteres usados. Tan pronto como se detecta un carácter que no es GSM-7, el sistema cambia a Unicode para todo el mensaje.
Recomendaciones de reemplazo
Estos caracteres suelen causar el cambio a Unicode o consumir unidades adicionales en GSM-7. Reemplázalos si tu objetivo es permanecer en un solo segmento.
| Carácter | Descripción | Reemplazo recomendado | Ejemplo |
|---|---|---|---|
| á, à, â, ä, ã, å | Variaciones de "a" acentuada | a | "mañana" → "manana" |
| é, è, ê, ë | Variaciones de "e" acentuada | e | "éxito" → "exito" |
| í, ì, î, ï | Variaciones de "i" acentuada | i | "país" → "pais" |
| ó, ò, ô, ö, õ | Variaciones de "o" acentuada | o | "avión" → "avion" |
| ú, ù, û, ü | Variaciones de "u" acentuada | u | "tú" → "tu" |
| ñ | "ñ" española | n | "niño" → "nino" |
| ç | Cedilla "c" | c | "façade" → "facade" |
| € | Símbolo de Euro | EUR | "€50" → "EUR 50" |
| –, — | En dash / Em dash | - | Reemplazar "–" con "-" |
| ‘, ’, “, ” | Comillas curvas (smart quotes) | ', " | Reemplazar comillas curvas por rectas |
| … | Elipsis | ... | Usar tres puntos |
| Emojis / símbolos | Pictogramas o iconos | Eliminar o usar equivalentes de texto | "Confirmed" → "Confirmed" |
El uso de equivalentes simples puede alterar ligeramente el tono o el idioma, especialmente en español. Debes sopesar la legibilidad frente a la optimización de costo y segmentos.
Conclusión
- Si tu mensaje está en GSM-7 y se mantiene por debajo de unos 160 caracteres, normalmente se envía como un segmento.
- Si supera los 160 caracteres en GSM-7, se envía como múltiples segmentos de aproximadamente 153 caracteres. Los metadatos de concatenación consumen 3 caracteres por segmento, lo que reduce la capacidad de 160 a 153. Ejemplo: un mensaje GSM-7 de 180 caracteres se envía como 2 segmentos (157 + 23 = 180).
- Si el mensaje incluye cualquier carácter que no sea GSM-7, la codificación cambia a Unicode (UCS-2). Cada segmento puede contener 67 caracteres útiles, ya que se reservan 3 para la información de concatenación.
- El impacto en el costo es directo: cada segmento adicional es una unidad facturable.
- Ejemplo: un mensaje de 140 caracteres solo con caracteres GSM-7 se envía como 1 segmento. Si incluye un emoji o cualquier carácter no admitido, cambia a Unicode y requiere 3 segmentos (67 + 67 + 6), triplicando el costo de entrega.
- En campañas de alto volumen, incluso pequeños aumentos de segmentos por mensaje pueden afectar significativamente el presupuesto.