Que es la Codificacion GSM-7? Limites de Caracteres SMS Explicados
GSM-7 es un estandar de codificacion de caracteres usado en SMS (Servicio de Mensajes Cortos) que permite hasta 160 caracteres por segmento de mensaje. Desarrollado por el Instituto Europeo de Normas de Telecomunicaciones (ETSI), GSM-7 es la codificacion predeterminada para mensajes de texto y juega un papel crucial en determinar los costos y la entrega de SMS.Entendiendo la Codificacion GSM-7
GSM-7 usa 7 bits para representar cada caracter, de ahi viene el nombre. Esta codificacion de 7 bits es mas eficiente que los estandares ASCII de 8 bits o UTF-8 usados en computacion, permitiendo que mas caracteres quepan dentro del ancho de banda limitado de SMS.
Las Matematicas Detras de los 160 Caracteres
Un mensaje SMS tiene una carga maxima de 1120 bits. Con codificacion GSM-7:
text1120 bits ÷ 7 bits por caracter = 160 caracteres
Esta es la razon por la que la longitud estandar de SMS es 160 caracteres cuando se usa texto compatible con GSM-7.
El Conjunto de Caracteres GSM-7
El conjunto basico de caracteres GSM-7 incluye 128 caracteres optimizados para idiomas de Europa Occidental:
Caracteres Estandar (7 bits cada uno)
| Categoria | Caracteres |
|---|
| Letras mayusculas | A-Z |
|---|---|
| Letras minusculas | a-z |
| Numeros | 0-9 |
| Puntuacion comun | . , : ; ! ? |
| Caracteres especiales | @ £ $ ¥ # % & |
| Simbolos | ( ) < > = + - / |
| Espacios | Espacio, salto de linea |
Caracteres Extendidos (14 bits cada uno)
Algunos caracteres requieren una secuencia de escape, usando efectivamente 2 espacios de caracter:
| Caracter | Descripcion | Cuenta como |
|---|
{ | Llave izquierda | 2 caracteres | |
|---|---|---|---|
} | Llave derecha | 2 caracteres | |
[ | Corchete izquierdo | 2 caracteres | |
] | Corchete derecho | 2 caracteres | |
~ | Tilde | 2 caracteres | |
\ | Barra invertida | 2 caracteres | |
^ | Acento circunflejo | 2 caracteres | |
€ | Signo de euro | 2 caracteres | |
| Barra vertical | 2 caracteres |
GSM-7 vs Codificacion UCS-2
Cuando un mensaje contiene caracteres fuera del conjunto GSM-7, la codificacion cambia automaticamente a UCS-2 (Unicode):
| Codificacion | Bits por caracter | Caracteres por SMS |
|---|
| GSM-7 | 7 bits | 160 caracteres |
|---|---|---|
| UCS-2 | 16 bits | 70 caracteres |
Caracteres Que Activan UCS-2
Caracteres comunes que fuerzan codificacion UCS-2:
- Emojis - Todos los emojis requieren Unicode
- Chino, Japones, Coreano - Caracteres CJK
- Arabe, Hebreo - Escrituras de derecha a izquierda
- Cirilico - Ruso, Ucraniano, etc.
- Comillas tipograficas - " " ' ' (comillas curvas)
- Simbolos especiales - TM © ® y muchos otros
El Impacto en Costos
Cambiar a UCS-2 puede mas que duplicar tus costos de SMS:
Ejemplo: Un mensaje de 140 caracteres con un emoji- Sin emoji (GSM-7): 1 segmento SMS
- Con emoji (UCS-2): 2 segmentos SMS (140 chars ÷ 70 = 2)
Mensajes Concatenados (SMS Largos)
Cuando los mensajes exceden el limite de un solo segmento, se dividen en multiples partes:
Concatenacion GSM-7
| Segmentos | Caracteres por segmento | Total caracteres |
|---|
| 1 | 160 | 160 |
|---|---|---|
| 2 | 153 | 306 |
| 3 | 153 | 459 |
| 4 | 153 | 612 |
Concatenacion UCS-2
| Segmentos | Caracteres por segmento | Total caracteres |
|---|
| 1 | 70 | 70 |
|---|---|---|
| 2 | 67 | 134 |
| 3 | 67 | 201 |
| 4 | 67 | 268 |
Errores Comunes con GSM-7
1. Sustitucion Invisible de Caracteres
Los procesadores de texto y algunas aplicaciones reemplazan caracteres automaticamente:
| Escrito | Auto-reemplazado | Impacto en Codificacion |
|---|
" | " o " | GSM-7 → UCS-2 |
|---|---|---|
' | ' o ' | GSM-7 → UCS-2 |
- | – (guion medio) | GSM-7 → UCS-2 |
... | … (elipsis) | GSM-7 → UCS-2 |
2. Copiar-Pegar desde Documentos
Copiar texto de Microsoft Word, Google Docs o clientes de email frecuentemente introduce:
- Comillas tipograficas y apostrofes
- Espacios de no separacion
- Caracteres de formato ocultos
- Guiones largos/medios
3. Insercion de Emojis
Un solo emoji puede convertir todo tu mensaje a UCS-2, reduciendo la capacidad de 160 a 70 caracteres.
4. Caracteres Especificos de Idioma
Caracteres comunes en ciertos idiomas pero fuera de GSM-7:
| Idioma | Caracteres Problematicos |
|---|
| Polaco | ą ć ę ł ń ó ś ź ż |
|---|---|
| Turco | ğ ı İ ş |
| Portugues | ã õ |
| Aleman | ß (a veces) |
Extensiones de Idioma Nacional GSM-7
El 3GPP definio extensiones de idioma nacional para soportar caracteres adicionales mientras mantiene eficiencia de 7 bits:
- Turco - Agrega ğ, ı, İ, ş, Ş, ç, Ç
- Espanol - Agrega á, é, í, ó, ú, ü, ñ, Ñ, ¿, ¡
- Portugues - Agrega ã, Ã, õ, Õ, â, ê, ô, etc.
Mejores Practicas para Codificacion de Caracteres SMS
1. Validar Antes de Enviar
Siempre verificar la codificacion del mensaje antes de transmitir:
javascriptfunction isGsm7Compatible(text) { const gsm7Chars = /^[A-Za-z0-9 \r\n@£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ!"#¤%&'()+,\-./:;<=>?¡ÄÖÑܧ¿äöñüà^{}\\\[~\]|€]*$/; return gsm7Chars.test(text); }
2. Contar Caracteres Correctamente
Considerar caracteres extendidos:
javascriptfunction countGsm7Characters(text) { const extendedChars = /[€\[\]{}~\\^[]).length; return text.length + extended; }
]/g; const extended = (text.match(extendedChars)
3. Sanear Entrada de Usuario
Reemplazar caracteres problematicos antes de enviar:
javascriptfunction sanitizeForGsm7(text) { return text .replace(/[""]/g, '"') // Comillas tipograficas a rectas .replace(/['']/g, "'") // Apostrofes tipograficos .replace(/–/g, "-") // Guion medio a guion .replace(/—/g, "-") // Guion largo a guion .replace(/…/g, "..."); // Elipsis a puntos }
4. Advertir a Usuarios sobre Cambios de Codificacion
Si tu aplicacion acepta entrada de usuario para SMS, mostrar retroalimentacion en tiempo real:
- Conteo actual de caracteres
- Numero de segmentos SMS
- Tipo de codificacion (GSM-7 o UCS-2)
- Caracteres causando cambio de codificacion
5. Considerar Transliteracion
Para mensajes internacionales, considerar transliterar caracteres no-GSM-7:
| Original | Transliterado |
|---|
| café | cafe |
|---|---|
| naïve | naive |
| ñ | n |
| ü | u |
Codificacion SMS y APIs de Mensajeria
Las APIs modernas de mensajeria manejan la codificacion automaticamente, pero entenderla ayuda a optimizar:
Ejemplo de API Zavu
Al enviar via API, la plataforma:
json{ "message": { "id": "msg_abc123", "encoding": "GSM-7", "segments": 1, "characterCount": 142 } }
El Futuro de la Codificacion SMS
Mientras GSM-7 sigue siendo el estandar, la industria esta evolucionando:
RCS (Rich Communication Services)
RCS (Rich Communication Services) elimina las limitaciones de caracteres completamente, soportando:- Longitud de texto ilimitada
- Soporte Unicode completo
- Medios enriquecidos (imagenes, videos)
- Confirmaciones de lectura e indicadores de escritura
Estrategias de Fallback
Las plataformas de mensajeria inteligente usan:
Probando Compatibilidad GSM-7
Antes de lanzar campanas SMS, probar con:
Herramientas Online
- Validadores de caracteres GSM-7
- Calculadoras de longitud SMS
- Herramientas de deteccion de codificacion
Pruebas en Dispositivos
Enviar mensajes de prueba a dispositivos reales a traves de:
- Diferentes operadores
- Varios modelos de telefono
- Multiples paises
Conclusion
Entender la codificacion GSM-7 es esencial para cualquiera que trabaje con mensajeria SMS. El limite de 160 caracteres, los costos de caracteres extendidos, y el fallback a UCS-2 impactan directamente la entrega y costos de mensajes.
Puntos clave:
- GSM-7 permite 160 caracteres por SMS individual
- Caracteres extendidos cuentan doble (€, [, ], etc.)
- Caracteres no-GSM-7 activan UCS-2, reduciendo capacidad a 70 caracteres
- Mensajes concatenados pierden caracteres por headers
- Siempre sanear texto antes de enviar para evitar cambios inesperados de codificacion
Lecturas Adicionales
- Concatenacion SMS y mensajes multiparte
- Unicode en telecomunicaciones
- Estandares de mensajeria RCS
- Optimizacion de entrega SMS