Zero-width character and text steganography decoder
Reveal messages hidden in zero-width Unicode characters, trailing whitespace, and homoglyph substitution - text steganography that survives copy-paste.
Open in ctfpalSome Unicode codepoints render as nothing at all. Zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), and the word joiner (U+2060) can be interleaved into ordinary text and are invisible in every editor - but survive copy-paste, which makes them a real channel rather than a curiosity.
What makes this category distinct is that the carrier is text rather than a file, so it survives everything a file would not: pasting into a chat message, quoting in an email, copying out of a PDF. A challenge that hands you a paragraph and nothing else is very often this, because there is nowhere else for the data to be.
Three text-stego techniques
- Zero-width binary. Two invisible characters stand for 0 and 1; the bit stream decodes to ASCII. Look for an unexpectedly large byte count on a short-looking string.
- Trailing whitespace. Spaces and tabs at the end of lines encode bits. Invisible in most views, and the same trick the Whitespace esolang uses.
- Homoglyphs. Cyrillic
а(U+0430) instead of Latina(U+0061). Visually identical, different bytes - so the substitution pattern carries the message.