El límite de caracteres de un SMS es de 160 caracteres en codificación GSM-7 o 70 caracteres en Unicode (UCS-2) para un único mensaje. Los mensajes más largos se dividen en segmentos de 153 caracteres GSM-7 o 67 Unicode, y cada segmento se factura como un SMS. Un solo carácter fuera del alfabeto GSM-7, como un emoji o una comilla tipográfica, pasa todo el mensaje a Unicode.
Por qué los límites son 160 y 70
La carga útil de un SMS es de 140 bytes (1120 bits). La codificación decide cuántos caracteres caben:
| Codificación | Bits por carácter | SMS único | Por segmento en un SMS largo |
|---|---|---|---|
| GSM-7 (alfabeto por defecto) | 7 | 160 | 153 |
| Datos de 8 bits | 8 | 140 bytes | 134 bytes |
| UCS-2 (Unicode) | 16 | 70 | 67 |
En un mensaje largo, cada segmento lleva una cabecera de 6 bytes (UDH) que indica al teléfono cómo volver a unir las partes, y por eso los límites por segmento son menores. Cómo funciona se explica en SMS largos (concatenados) explicados.
Qué incluye el alfabeto GSM-7
GSM-7 cubre las letras latinas básicas, las cifras, los signos de puntuación comunes y algunas letras acentuadas de las lenguas de Europa occidental, como é, è, ü, ñ y à. No incluye muchas otras letras acentuadas (por ejemplo á, í, ó, ú, ê u õ), ni el cirílico, el árabe, el chino ni ningún emoji. Incluye algunas mayúsculas griegas, herencia del estándar original.
Algunos caracteres pertenecen a la tabla de extensión y ocupan dos caracteres de espacio cada uno, porque se envían con un código de escape:
- ^ { } \ [ ] ~ | y el signo del euro
Por eso, un mensaje con cinco signos del euro tiene espacio para 155 caracteres, no para 160.
Qué activa Unicode
Si un solo carácter no está en GSM-7, todo el mensaje se envía como UCS-2 y el límite baja de 160 a 70. Causas accidentales frecuentes:
- Comillas y apóstrofos tipográficos copiados de procesadores de texto (use las rectas ' y ")
- Rayas largas y el carácter de puntos suspensivos (use un guion y tres puntos)
- Espacios de no separación y caracteres de ancho cero procedentes de formularios web
- Emojis, que en UCS-2 suelen ocupar dos posiciones de carácter cada uno
- Letras fuera del alfabeto, como la ł polaca o la ş turca
Un mensaje en inglés de 150 caracteres con un solo apóstrofo tipográfico pasa a ser de tres segmentos en lugar de uno. En campañas grandes, eso triplica el coste. El precio por segmento se explica en cómo funcionan los precios de SMS A2P.
Idiomas que necesitan Unicode
El árabe, el ruso, el hindi, el chino, el tailandés y muchas otras escrituras necesitan siempre UCS-2, así que allí los límites reales son 70 y 67. Algunas redes admiten tablas de desplazamiento de idioma nacional (definidas para el turco, el español, el portugués y varias lenguas de India) que mantienen la codificación de 7 bits con otro juego de caracteres, pero el soporte depende de la ruta y de los terminales, así que no confíe en ellas sin probarlas.
Cómo configurar la codificación por SMPP y HTTP
- SMPP: el campo data_coding indica cómo está codificado el mensaje. 0 significa el alfabeto por defecto del SMSC (a menudo GSM-7, aunque algunas plataformas lo tratan como Latin-1), 8 significa UCS-2. Pregunte a su proveedor qué valor por defecto usa, porque una discrepancia desfigura los caracteres. Consulte SMPP vs HTTP API.
- HTTP API: normalmente envía texto UTF-8 y la plataforma elige la codificación. Compruebe cómo cuenta los segmentos antes del lanzamiento.
Los rechazos como codificación de datos no válida o longitud de mensaje no válida figuran en códigos de error SMPP habituales.
Consejos prácticos
- Pase el texto saliente por un depurador que sustituya las comillas tipográficas, las rayas y los caracteres invisibles.
- Cuente los segmentos en su sistema antes de enviar y regístrelos, para poder conciliar las facturas.
- Mantenga los OTP y las alertas en un solo segmento GSM-7. Consulte buenas prácticas para SMS OTP.
- Pruebe los caracteres especiales en terminales reales de cada país antes de una campaña.
VoIPMatcher obtiene rutas SMS A2P que admiten tráfico tanto GSM-7 como Unicode. Solicite una ruta SMS e indíquenos los idiomas en los que envía.
Contador de caracteres SMS gratuito
- Codificación
- GSM-7
- Caracteres
- 0
- SMS facturados
- 0
- Caracteres restantes en este SMS
- 160
Preguntas frecuentes
¿Cuál es el límite de caracteres de un SMS en Unicode?
Un único SMS en Unicode (UCS-2) admite 70 caracteres. Cuando el mensaje es más largo, se divide en segmentos de 67 caracteres cada uno, porque cada segmento lleva una cabecera. El árabe, el cirílico, el chino, el hindi y muchas otras escrituras usan siempre Unicode, y un solo emoji o una comilla tipográfica también pasan a Unicode un mensaje en inglés.
¿Los emojis cuentan como dos caracteres en un SMS?
Muchos sí. Un emoji obliga a enviar todo el mensaje en Unicode, lo que reduce el límite de 160 a 70 caracteres, y la mayoría de los emojis ocupan dos posiciones de carácter UCS-2. Un mensaje corto con un emoji puede convertirse así en dos o más segmentos. No ponga emojis en los mensajes OTP ni en las alertas para mantenerlos en un solo segmento.
¿Cuentan los espacios en el límite de caracteres del SMS?
Sí. Los espacios, los saltos de línea y los signos de puntuación cuentan como caracteres, y en GSM-7 cada uno ocupa uno. Los caracteres invisibles copiados de formularios web, como los espacios de no separación o de ancho cero, no están en GSM-7 y pasan el mensaje a Unicode, así que limpie el texto antes de enviarlo.
¿Cómo cuento los caracteres de un SMS antes de enviarlo?
Compare cada carácter con el alfabeto GSM-7: cuente como uno los caracteres básicos y como dos los de extensión, como el signo del euro o los corchetes. Si algún carácter está fuera de GSM-7, cuente el mensaje en Unicode. Después divida entre 153 o 67 para obtener los segmentos. Muchas plataformas hacen este recuento por usted.
¿Necesita una ruta?
Envíe el destino, el tipo de ruta y la tarifa objetivo. Le respondemos con lo que podemos ofrecer.