BroadNet
Codificación de SMSJuegos de caracteres

UCS-2 y los SMS Unicode

Actualizado el 3 min de lecturaBasado en estándares
Respuesta directa

UCS-2 es la codificación de 16 bits que el SMS usa para todo texto que contenga caracteres fuera del alfabeto GSM-7 —escrituras no latinas, emojis, comillas tipográficas—. Cada carácter ocupa dos octetos, así que un SMS UCS-2 individual admite 70 caracteres y los segmentos concatenados 67 cada uno. Un único carácter fuera de GSM-7 fuerza todo el mensaje a UCS-2.

§01

Por qué el SMS necesita UCS-2

GSM-7 solo cubre 128 caracteres más un pequeño conjunto de extensión. Cualquier otra cosa —árabe, chino, cirílico, hebreo, tailandés, emojis e incluso caracteres tipográficos como comillas curvas o rayas— no es representable. Para eso, el SMS cambia a UCS-2, una codificación de ancho fijo de 16 bits (en la práctica UTF-16 big-endian para el Plano Multilingüe Básico). Se señaliza con data_coding 0x08.

§02

Capacidad: 70 y 67

El campo de datos de usuario del SMS es de 140 octetos. A dos octetos por carácter, UCS-2 cabe en 70 caracteres en un mensaje individual. Cuando un mensaje se concatena, el User Data Header de 6 bytes consume carga y deja 134 octetos: 67 caracteres por segmento. Es menos de la mitad de la capacidad de GSM-7, y por eso la elección de codificación tiene un gran impacto en el coste.

Capacidad por mensaje según codificación
CodificaciónSMS únicoPor segmento concatenado
GSM-7 (7-bit)160 caracteres153 caracteres
Binario de 8 bits140 bytes134 bytes
UCS-2 (16-bit)70 caracteres67 caracteres
§03

Qué activa UCS-2

La codificación es todo o nada por mensaje: un único carácter fuera de GSM-7 fuerza todo el mensaje a UCS-2, reduciendo la capacidad de 160 a 70. Los culpables habituales son fáciles de introducir por accidente: un apóstrofo tipográfico de un procesador de textos, una raya, un emoji o un nombre no latino. Detectarlos antes de enviar es la mayor palanca sobre el coste del SMS.

Caracteres que fuerzan UCS-2
CategoríaEjemplos
Emoji😀 ✅ 🚀 ❤️
Puntuación tipográfica' ' “ ” – — …
Escrituras no latinasالعربية · 中文 · Кириллица · עברית · ไทย
Las letras acentuadas no están en GSM-7â ê î ô û ã õ ą ę ř
§04

La advertencia sobre los pares suplentes

UCS-2 es estrictamente de 16 bits y cubre el Plano Multilingüe Básico de Unicode. Los caracteres por encima de U+FFFF —muchos emojis modernos, por ejemplo— se representan en UTF-16 como pares suplentes de dos unidades de código de 16 bits, así que uno solo de esos emojis consume cuatro octetos (dos «caracteres» UCS-2). Un mensaje que parece un solo emoji puede, por tanto, contar como dos para el límite de 70/67.

Preguntas frecuentes

Preguntas frecuentes

¿Cuántos caracteres caben en un SMS Unicode?

70 caracteres en un mensaje UCS-2 individual, y 67 por segmento cuando el mensaje se concatena. Se debe a que cada carácter son 16 bits (dos octetos) frente al límite de carga de 140 octetos del SMS.

¿Qué hace que un SMS cambie a UCS-2?

Cualquier carácter fuera del alfabeto GSM-7 —un emoji, una comilla tipográfica, una raya o texto no latino— fuerza todo el mensaje a UCS-2. La codificación se elige por mensaje, no por carácter.

¿Es UCS-2 lo mismo que UTF-16?

Casi. UCS-2 es de 16 bits fijos y cubre el Plano Multilingüe Básico. El SMS trata la carga como UTF-16 big-endian, así que los caracteres por encima de U+FFFF (muchos emojis) se convierten en pares suplentes y ocupan cuatro octetos.

¿Por qué un emoji a veces cuenta como dos caracteres?

Los emojis por encima de U+FFFF se codifican como pares suplentes UTF-16 —dos unidades de código de 16 bits—, así que un solo glifo consume dos de las 70 (o 67) posiciones de carácter UCS-2 disponibles.

¿Cómo evito enviar UCS-2 por accidente?

Sanea la entrada antes de enviar: sustituye comillas y rayas tipográficas por sus equivalentes ASCII, elimina o translitera acentos sueltos y comprueba si hay emojis. Un verificador GSM-7/Unicode marca los caracteres exactos que fuerzan UCS-2.

Referencias

Especificaciones de la fuente

Las normas publicadas en las que se basa esta página. Se abre en una pestaña nueva.

BNMantenido por el equipo de ingeniería BroadNet·Mensajería de nivel empresarial desde 2003.
Colócalo en el cable

Desarrollado con un enlace SMPP real y una API REST.

Solicita acceso de prueba con claves de prueba reales: primero envía a tu propio número verificado y, una vez aprobada tu identidad de remitente y las rutas, pasa a producción en más de 200 países.