Logo

MonoCalc

/

Zero Width Character Encoder

Encode/Decode

128 characters available

14 characters

Payload Capacity

126 / 128 insertion points (98%)

Zero-Width Character Reference

U+200B ZWS

bit 0 / delimiter

U+200C ZWNJ

bit 1

U+200D ZWJ

byte delimiter

U+FEFF ZWNBS

4th symbol

About This Tool

🕵️ Zero Width Character Encoder – Text Steganography with Unicode

The Zero Width Character Encoder lets you hide secret messages, watermarks, or fingerprint tokens inside ordinary visible text using invisible Unicode characters. The encoded output looks completely normal to any reader but carries a hidden payload that only the decoder can reveal. This technique is known as Unicode steganography.

What Are Zero-Width Characters?

Zero-width characters (ZWCs) are Unicode code points that render without any visible glyph or horizontal space. They are legitimate Unicode characters used for linguistic purposes — for example, the Zero Width Joiner controls ligature formation in scripts like Arabic and Devanagari — but they are invisible in most contexts.

CharacterCode PointNameBinary Role
(invisible)U+200BZero Width Space (ZWS)Bit 0
(invisible)U+200CZero Width Non-Joiner (ZWNJ)Bit 1
(invisible)U+200DZero Width Joiner (ZWJ)Byte delimiter
 (invisible)U+FEFFZero Width No-Break Space (BOM)4th symbol (quaternary)

How the Encoding Algorithm Works

The tool implements a binary ZWC steganography algorithm:

  1. Convert the secret payload to a UTF-8 byte array.
  2. Convert each byte to its 8-bit binary string (e.g., 6501000001).
  3. Map each bit: 0U+200B, 1U+200C.
  4. Use U+200D (ZWJ) as a byte delimiter between groups of 8 bits.
  5. Distribute the resulting ZWC stream evenly through the carrier text.

The output text is visually identical to the carrier. Only a decoder that knows to look for ZWC sequences — and interprets them using the same scheme — can recover the hidden payload.

Three Operating Modes

1. Encode Mode

Enter your carrier text (the visible host text) and your secret payload. Choose an encoding scheme and click Encode. The tool distributes invisible ZWCs throughout the carrier and shows you the encoded result — which looks identical to the original carrier text but contains the hidden message. A capacity meter shows how much of the carrier is used.

2. Decode Mode

Paste any text that may contain hidden ZWCs (such as output from Encode mode). Click Decode to reveal the hidden payload. The tool also reports the ZWC count, their positions, and the carrier text with all invisible characters stripped.

3. Sanitize Mode

Paste any suspicious text and click Sanitize to remove all zero-width characters. This is useful for cleaning text copied from web pages, chat applications, or documents that may have been watermarked or contain maliciously injected ZWCs.

Encoding Schemes Compared

SchemeSymbolsZWCs per ASCII charBest for
Binary2 (ZWS, ZWNJ)9 (8 bits + 1 delimiter)Maximum compatibility
Ternary3 (ZWS, ZWNJ, ZWJ)~6 (base-3 encoding)Longer payloads in short carriers
Quaternary4 (ZWS, ZWNJ, ZWJ, FEFF)~5 (base-4 encoding)Most compact embedding

Common Use Cases

  • Digital watermarking – Embed a unique identity token in published text to trace unauthorized copying or leaks.
  • Document fingerprinting – Tag each copy of a document sent to different recipients so you can identify the source of a leak.
  • Steganography education – Demonstrate how data can be hidden in plain sight using Unicode's invisible character set.
  • Security research – Study how ZWCs can bypass naive text filters or be used in phishing and spoofing attacks.
  • Text sanitization – Clean text of hidden characters before processing or publishing.
Security Notice

Zero-width character steganography is not encryption. The hidden text is unprotected — anyone with a decoder can read it. ZWCs are also used maliciously in phishing attacks (to bypass spam filters) and text spoofing. Always sanitize untrusted text before processing. For sensitive communications, use proper end-to-end encryption.

Frequently Asked Questions

Is the Zero Width Character Encoder free?

Yes, Zero Width Character Encoder is totally free :)

Can I use the Zero Width Character Encoder offline?

Yes, you can install the webapp as PWA.

Is it safe to use Zero Width Character Encoder?

Yes, any data related to Zero Width Character Encoder only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the Zero Width Character Encoder work?

The encoder converts your secret payload to its UTF-8 byte representation, maps each bit to a zero-width character (U+200B for 0, U+200C for 1), and inserts the resulting invisible character stream throughout your carrier text. The output looks visually identical to the original carrier but carries a hidden message retrievable only with the decoder.

What are zero-width characters and why are they invisible?

Zero-width characters are Unicode code points that have no visible glyph and occupy no horizontal space when rendered. Examples 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). Most fonts and text renderers simply skip them visually, making them ideal for steganographic embedding.

What is the maximum payload size I can encode?

Payload capacity depends on carrier length. Each bit of your payload requires one zero-width character insertion point in the carrier. So encoding a 10-character ASCII secret requires 80 ZWCs distributed across at least 80 characters of carrier text. The tool shows a real-time capacity meter indicating used vs. available capacity.

Can zero-width characters be detected or stripped?

Yes. Zero-width characters can be detected by inspecting Unicode code points programmatically. Text sanitizers, security tools, and some email clients strip them. The Sanitize mode in this tool removes all ZWCs from any text with one click. For truly secure communication, use proper encryption rather than steganography.

What encoding schemes are available?

The tool offers Binary (2-symbol: ZWS=0, ZWNJ=1 with ZWJ as delimiter), Ternary (3-symbol: ZWS, ZWNJ, ZWJ), and Quaternary (4-symbol: adds U+FEFF as the fourth symbol). Binary is most compatible; ternary and quaternary produce shorter ZWC streams for the same payload, allowing longer payloads in shorter carriers.

Is this tool appropriate for secure communication?

No. Zero-width character steganography is an educational and watermarking technique, not a substitute for cryptography. The hidden text is not encrypted — anyone with the decoder can read it. For sensitive communication, use proper end-to-end encryption. This tool is best suited for digital watermarking, plagiarism tracking, and learning about Unicode steganography.