
Zero-width steganography encode
Zero-width steganography encode. Runs entirely on your device, nothing is uploaded.
Zero-width steganography encode hides a text payload inside invisible Unicode characters appended after a visible cover text you supply. Each payload byte becomes eight zero-width space or non-joiner characters, one per bit, closed with a zero-width joiner terminator. Giving no payload is refused outright. Many editors and messaging apps strip zero-width characters in transit, breaking the payload silently.
Questions
How is the payload hidden?
Every byte of the payload text is converted to eight bits, and each bit becomes one of two invisible Unicode characters, a zero-width space for a 0 or a zero-width non-joiner for a 1. That run of invisible characters is closed with a zero-width joiner as a terminator and appended after your visible cover text.
What happens if I leave the payload empty?
It refuses outright with "give a payload text to hide", since there would be nothing to encode into the invisible characters.
Is the cover text required?
No. The cover option defaults to an empty string, so the output can be only the invisible payload characters with no visible text in front of them, though that makes the hidden text easy to spot as an unusual blob of nothing.
Will the hidden text survive being copied and pasted?
Sometimes. Plain-text paste generally preserves the invisible characters, but many editors, chat apps and social platforms strip zero-width characters during input sanitization, which silently destroys the payload with no error shown to you.
Can this be reversed?
Yes, with Zero-width steganography decode, which reads the same invisible characters back out and reconstructs the original payload text.