EmoArt
Publicar
Glosario

Qué es un Selector de Variación (Variation Selector)

Última actualización: 2026-05-24·Aprox. 4 min

Este artículo se lee en unos 4 minutos.

La razón por la que ❤️ (un solo corazón rojo) ocupa 2 puntos de código es el selector de variación.El selector de variación es un carácter de control invisible que cambia la forma de presentación del carácter que lo precede. Permite alternar entre la visualización emoji y texto, especificar variantes de kanji (formas antiguas, modernas, etc.) y ajustar secuencias de emojis, sustentando el control fino de Unicode.

Definición

El selector de variación (Variation Selector) es un carácter de control invisible de Unicode cuya función es cambiar la forma de presentación del carácter anterior. Existen 16 selectores básicos (VS-1 a VS-16, U+FE00 a U+FE0F) y 240 selectores suplementarios (VS-17 a VS-256, U+E0100 a U+E01EF). En el contexto de los emojis, los que aparecen con más frecuencia son VS-15 y VS-16.

VS-15 y VS-16

SelectorPunto de códigoSignificadoEjemplo visual
VS-15U+FE0EPresentación texto (monocromo, estilo texto)♥︎ (corazón estilo texto)
VS-16U+FE0FPresentación emoji (a color, estilo emoji)❤️ (corazón rojo emoji)

Muchos caracteres de símbolo (♥, ☂, ☀, ☘, ✉, etc.) se registraron originalmente en Unicode como símbolos de texto. Más tarde, al extenderse su uso como emojis, se introdujeron estos dos selectores para alternar entre el «estilo texto» y el «estilo emoji».

Por qué ❤️ ocupa 2 puntos de código

El ❤️ como emoji está compuesto internamente por la combinación de estos 2 puntos de código:

  • ♥ (U+2665) - el símbolo de corazón base (existe desde hace tiempo como símbolo de texto)
  • U+FE0F (VS-16) - el selector que solicita la presentación emoji

Si se omite VS-16, algunos sistemas lo renderizan como ♥, un corazón de línea fina. Para mostrar el corazón rojo emoji, VS-16 es necesario. Esta estructura de 2 puntos de código es una de las razones principales por las que «un emoji consume 2 caracteres» en el conteo.

Aparición en secuencias emoji

En las secuencias ZWJ es habitual el patrón de insertar VS-16 después del emoji base. Por ejemplo, 🏳️‍🌈 (bandera arcoíris) tiene la siguiente secuencia:

  • 🏳 (U+1F3F3) - bandera blanca
  • U+FE0F (VS-16) - presentación emoji
  • U+200D (ZWJ) - unión
  • 🌈 (U+1F308) - arcoíris

Si se omite VS-16, en algunos sistemas la bandera no se muestra, por lo que en muchos casos es obligatorio para garantizar la compatibilidad.

Relación con las variantes de kanji

Los selectores de variación se diseñaron originalmente para especificar variantes de kanji (formas antiguas, modernas, alternativas). En el mecanismo llamado IVS (Ideographic Variation Sequence), la combinación de un kanji base + VS-17 a VS-256 permite especificar explícitamente una forma concreta. Por ejemplo, las variantes de «葛» (si debajo del radical de hierba va «曷» u otra forma) se distinguen mediante IVS. Aunque no se usa en el contexto de emojis, es un mecanismo importante en el procesamiento de texto japonés.

Consideraciones prácticas

  • Conteo de caracteres: los emojis que incluyen VS-16 están compuestos por 2 puntos de código
  • Procesamiento de texto: al invertir o recortar cadenas, hay que evitar separar el VS del carácter base
  • Compatibilidad: si un sistema antiguo ignora el VS, el emoji puede mostrarse en estilo texto
  • Normalización: la normalización Unicode (NFC, NFD) mantiene el VS, pero NFKC y NFKD pueden eliminarlo

Errores comunes

  • ❌ «Los selectores de variación son solo para kanji» → ✅ También se usan con emojis (VS-15/VS-16) y símbolos
  • ❌ «El VS no afecta a la visualización» → ✅ Cambiar la forma de presentación es precisamente su función principal
  • ❌ «Quitar VS-16 no cambia el emoji» → ✅ En algunos sistemas pasa a estilo texto

Términos relacionados

  • Unicode - el estándar de caracteres que define los selectores de variación
  • Emoji - muchos incluyen VS-16 en su composición
  • UTF-16 - otro factor que incrementa el conteo de caracteres

¿Te resultó útil este artículo?