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 Range | Unicode Range | Selector Names | Plane & Representation |
|---|---|---|---|
0x00 – 0x0F (0..15) | U+FE00 – U+FE0F | VS1 – VS16 | Basic Multilingual Plane (BMP) — 3 UTF-8 Bytes |
0x10 – 0xFF (16..255) | U+E0100 – U+E01EF | VS17 – VS256 | Supplementary 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
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.