Unicode Variation Selectors & UTF-8 Specifications

Unicode Variation Selectors (VS) are standardized non-printing code points intended to specify variant glyph presentations for preceding characters. STEGNOLINES leverages the full 256-value byte space across two distinct Unicode ranges.

1. The 256-Byte Variation Selector Mapping

Byte RangeUnicode RangeSelector NamesPlane & Representation
0x00 – 0x0F (0..15)U+FE00 – U+FE0FVS1 – VS16Basic Multilingual Plane (BMP) — 3 UTF-8 Bytes
0x10 – 0xFF (16..255)U+E0100 – U+E01EFVS17 – VS256Supplementary Special-purpose Plane (SSP) — 4 UTF-8 Bytes

2. Mathematical Mapping Function

VS_CodePoint(B) = (0xFE00 + B)              if 0 ≤ B ≤ 15
VS_CodePoint(B) = (0xE0100 + B - 16)      if 16 ≤ B ≤ 255

3. Why Variation Selectors Outperform Zero-Width Characters

  • 1 Byte per Character: Unlike Zero-Width Characters (which represent only 1–3 bits per character), each Variation Selector encodes an entire 8-bit byte.
  • Zero RTL Distortion: ZWC characters such as LRO (\u202D) or LRE (\u202A) invert Arabic sentence direction. Variation Selectors have zero bi-directional impact.
  • Preserved by Clipboard Buffers: Modern operating systems and mobile devices retain Variation Selectors during copy-and-paste operations.

4. UTF-8 Byte Expansion vs Character Limits

The Stego-Text Expansion Ratio measures the byte inflation resulting from Variation Selectors:

Size_Expansion_Ratio = ((Stego_Size - Cover_Size) / Cover_Size) × 100%

Because social media platforms (WhatsApp, Telegram, X, TikTok, etc.) measure message limits by visual character glyphs rather than raw UTF-8 byte length, the 2–4 byte expansion per invisible selector has zero impact on message length compliance.