Zero-Width Hidden Message Encoder

Hide a secret message inside visible text using invisible zero-width Unicode characters. Decode any text to reveal hidden messages.

Last reviewed: April 2026

New to this tool? Click here for instructions

Binary encoding will appear here after encoding-
Enter carrier text and a secret message, then click Encode.

How to use Zero-Width Hidden Message Encoder

To use the Zero-Width Hidden Message Encoder, follow these steps:

1. Enter the visible carrier text in the designated field.

2. Enter the secret message you want to hide.

3. Click the 'Encode' button to convert the secret message into zero-width characters and embed it within the carrier text.

4. Copy the encoded text and use it as needed. The hidden message can be decoded by anyone with access to the encoded text.

  • Encode secret messages without altering the visible text.
  • Use for legitimate watermarking or other purposes.
  • Free and accessible in your browser.

When to use Zero-Width Hidden Message Encoder

Use the Zero-Width Hidden Message Encoder when you need to hide a secret message within visible text. This is particularly useful for document watermarking, where you want to ensure that a document is only used by authorized parties. It's also helpful for embedding metadata or other information in a way that is not immediately obvious to the naked eye.

How it works

The Zero-Width Hidden Message Encoder works by converting the secret message into a sequence of zero-width Unicode characters. These characters are then inserted between the characters of the visible carrier text. The process involves several steps:

1. Convert the secret message to binary.

2. Map each binary digit to a zero-width character.

3. Insert the zero-width character sequence between the characters of the carrier text.

4. Decode the hidden message by extracting the zero-width characters and converting them back to text.

Frequently Asked Questions

Zero-width characters are Unicode code points with no visible width when rendered. Key ones include Zero Width Space (U+200B), Zero Width Non-Joiner (U+200C), Zero Width Joiner (U+200D), and Zero Width No-Break Space (U+FEFF). They are invisible to readers but present in the raw byte sequence of the text.
Each character of the secret message is converted to 8-bit binary. Bit 0 maps to Zero Width Space (U+200B) and bit 1 maps to Zero Width Non-Joiner (U+200C). These invisible characters are inserted between characters of the visible carrier text. To decode, extract all ZWS/ZWNJ characters, group into 8-bit chunks, and convert back to text.
Yes. Zero-width characters can be detected by examining the raw bytes or character count of the text, using a Unicode inspector, or with regex patterns matching Unicode category Cf. The text will have more bytes than visible characters. Security tools, document analysis software, and careful manual inspection can all reveal hidden zero-width characters.
Legitimate uses include watermarking documents to identify the source of leaks, adding invisible provenance metadata to text, and security research. Malicious uses include bypassing content filters (since invisible characters alter string comparisons without being visible), embedding covert communication channels, and the Trojan Source attack on source code. This tool is for educational and legitimate purposes only.
No. The visible text appears completely unchanged. The hidden message is encoded entirely in zero-width characters inserted between visible characters. The only detectable differences are a longer byte sequence, a higher character count, and potential issues with text processing that does not expect non-printable characters.