ZWJ (Zero Width Joiner) - qué es y cómo funciona
Este artículo se lee en unos 4 minutos.
ZWJ es el pegamento invisible que convierte emojis separados en caracteres compuestos como grupos familiares y símbolos de profesiones.El Zero Width Joiner (U+200D) es un carácter de control Unicode sin ancho visible. Cuando se coloca entre emojis, indica al motor de renderizado que los muestre como un único glifo combinado, siempre que exista uno.
Definición
El Zero Width Joiner (ZWJ) es un carácter no imprimible en el punto de código Unicode U+200D. Originalmente fue diseñado para escrituras complejas como el árabe y las lenguas índicas (donde la forma de las letras cambia según la adyacencia), y se reutilizó para la composición de emojis a partir de Unicode 6.0.
En el contexto de los emojis, ZWJ actúa como combinador: Emoji A + ZWJ + Emoji B = Emoji combinado (si está soportado). Si la plataforma no tiene un glifo combinado, degrada elegantemente mostrando A y B por separado.
Cómo funcionan las secuencias ZWJ
Una secuencia ZWJ es una cadena de emojis conectados por caracteres ZWJ. El motor de renderizado procesa la secuencia de izquierda a derecha:
- Lee el primer punto de código emoji
- Encuentra un ZWJ (U+200D)
- Lee el siguiente punto de código emoji
- Comprueba si existe un glifo combinado para ese par
- Si existe, renderiza el glifo combinado. Si no, renderiza ambos emojis por separado
- Repite para cualquier ZWJ + emoji adicional en la secuencia
Categorías comunes de secuencias ZWJ
Profesiones
Persona + ZWJ + objeto = emoji de profesión:
- 👩 + ZWJ + 💻 = 👩💻 (mujer tecnóloga)
- 👨 + ZWJ + 🍳 = 👨🍳 (hombre cocinero)
- 🧑 + ZWJ + 🚀 = 🧑🚀 (astronauta)
Familias
Varios emojis de persona unidos por ZWJ:
- 👨 + ZWJ + 👩 + ZWJ + 👧 = 👨👩👧 (familia)
- 👩 + ZWJ + 👩 + ZWJ + 👦 + ZWJ + 👦 = 👩👩👦👦 (familia con dos madres y dos hijos)
Variaciones de género
Emoji base + ZWJ + signo de género:
- 🧑🦰 = 🧑 + ZWJ + 🦰 (persona pelirroja)
- 🏃♀️ = 🏃 + ZWJ + ♀️ (mujer corriendo)
Banderas (subdivisiones)
Las banderas de subdivisiones como 🏴 (Inglaterra) usan secuencias de etiquetas en lugar de ZWJ, pero el principio es similar: múltiples caracteres invisibles se combinan en un solo glifo.
Por qué se rompen las secuencias ZWJ
| Causa | Resultado | Solución |
|---|---|---|
| SO / fuente antigua | Los componentes se muestran por separado | Actualizar el dispositivo |
| El editor de texto elimina el ZWJ | La secuencia se rompe | Usar un editor compatible con Unicode |
| La plataforma no soporta la combinación | Se muestran los emojis individuales | Usar secuencias bien establecidas |
| El límite de caracteres cuenta puntos de código | La secuencia usa más «caracteres» de lo esperado | Contar clústeres de grafemas en su lugar |
Implicaciones en el conteo de caracteres
Un emoji de familia como 👨👩👧👦 tiene 7 puntos de código (4 emojis + 3 caracteres ZWJ). Las plataformas que cuentan puntos de código (como el antiguo contador de Twitter) pueden cobrar 7 caracteres por lo que parece 1. Las plataformas modernas cuentan «clústeres de grafemas», tratando toda la secuencia como 1 unidad.
Consejos prácticos para el arte con emojis
- Usa secuencias ZWJ ampliamente soportadas (profesiones, familias básicas)
- Prueba en varias plataformas antes de usar en biografías o publicaciones importantes
- Para máxima compatibilidad, prefiere emojis de un solo punto de código frente a secuencias ZWJ
- Al copiar y pegar secuencias ZWJ, usa el selector de emojis en lugar de la selección de texto para evitar romper la secuencia
Términos relacionados
- Unicode - el estándar que asigna un número único a cada carácter