Invisible Text Generator
Generate invisible zero-width characters in any quantity, hide a secret message inside normal-looking text, and inspect any text for hidden codepoints. Free, with no signup.
100% client-side — your text never leaves your browser Honest note: some apps strip zero-width characters — test before relying on themInvisible text tools
1. Pick an invisible character
Hide a message
Reveal a message
Inspect text for hidden characters
| # | Codepoint | Character | Name | Class |
|---|
How it works
- Pick a codepoint. Each invisible character below has a different personality: some are truly zero-width, some only look blank, and platforms treat them differently.
- Generate any quantity up to 100,000 characters, then copy the result. The codepoint preview proves exactly what you generated, since the characters themselves are invisible.
- Hide mode converts your secret to UTF-8 bytes, writes each bit as U+200B (0) or U+200C (1) inside an
INV1frame delimited by double U+2060 markers, and spreads the bits evenly between your cover text’s letters. - Reveal mode scans pasted text for that frame and rebuilds the secret. Text without a valid frame reports “no hidden message” instead of guessing.
- Inspector mode lists every codepoint with its Unicode name and flags invisible ones — handy for auditing text you received.
Character reference
| Codepoint | Name | Behavior | Notes |
|---|
Worked examples
Input: codepoint U+200B (zero-width space), count 12 Output: 12 invisible characters Escaped: \u200b\u200b\u200b\u200b … (12 total) Stats: 12 characters · 12 × U+200B · 36 bytes UTF-8
Each U+200B is 3 bytes in UTF-8 (E2 80 8B), so 12 of them encode as 36 bytes.
Input: codepoint U+2800 (braille pattern blank), count 1 Output: 1 blank-looking character
Paste it on its own line to keep a blank line alive in apps that collapse empty lines. It renders blank but counts as a real character.
Cover: "lunch tomorrow?" (15 characters) Secret: "meet at noon" (12 UTF-8 bytes) Frame: 4 magic + 4 length + 12 payload = 20 bytes → 160 bits → 164 frame chars Output: 179 characters total — looks exactly like "lunch tomorrow?" Reveal: "meet at noon"
Stripping all invisible characters from the output restores the cover text byte-for-byte.
Input: codepoint U+00AD (soft hyphen), count 1 Usage: extra[U+00AD]ordinary
The word looks and behaves like “extraordinary” until the line needs to wrap — then it may break as “extra-ordinary”. [U+00AD] marks where the invisible character sits.
Paste: a[U+200B]b[U+200C]c Rows: #0 U+0041 "a" — visible #1 U+200B ZERO WIDTH SPACE — invisible (zero-width) #2 U+0062 "b" — visible #3 U+200C ZERO WIDTH NON-JOINER — invisible (zero-width) #4 U+0063 "c" — visible
[U+200B] and [U+200C] stand in for the invisible characters in this illustration.
Input: x[U+200B]y[U+2060]z Strip: "xyz"
The two invisible codepoints are removed; visible characters are untouched.
Invisible text — frequently asked questions
What is invisible text and why would anyone use it?
Invisible text is made of Unicode characters that take up no visible space: zero-width characters such as U+200B, or characters that render blank such as U+2800 Braille Pattern Blank. People use them to send blank messages, create invisible usernames, keep spacing that apps would otherwise collapse, watermark a document, or hide a secret message inside normal-looking text. They are still real characters, so software counts and stores them even though your eyes cannot see them.
Which invisible characters does this generator support, and how are they different?
Seven. U+200B zero-width space is the most compatible but some platforms strip it. U+200C zero-width non-joiner and U+200D zero-width joiner are almost never stripped; U+200D also powers emoji sequences. U+2060 word joiner additionally blocks line breaks. U+FEFF zero-width no-break space works but some editors flag it. U+2800 braille pattern blank renders blank rather than zero-width and survives almost everywhere, which is why it is the favorite for blank lines. U+00AD soft hyphen stays invisible until a line break, where it appears as a hyphen.
Will invisible text survive paste into WhatsApp, Discord, Instagram, or TikTok?
Honestly, it depends on the platform, and their filters change. Zero-width characters (U+200B, U+200C, U+200D) are the most likely to be stripped or normalized: Instagram collapses them in captions and several apps remove them from usernames. Blank-look characters such as U+2800 survive far more often. If one codepoint vanishes, generate another from the list and test it in the target app before you rely on it.
How does the hide-a-message mode work?
Your secret is converted to UTF-8 bytes, and every bit becomes a zero-width character (U+200B for 0, U+200C for 1). Those bits are wrapped in a small frame with an INV1 signature and length header, delimited by double U+2060 markers, then spread evenly between the letters of your cover text. The result looks exactly like the cover text. Paste it into the Reveal panel to read the secret back.
Is a hidden message encrypted or secure?
No. This is encoding, not encryption: anyone who pastes your text into an invisible-character detector, or into the Reveal and Inspector panels on this page, can read the secret immediately. Treat it as a fun obfuscation trick or a watermark, never as protection for passwords, personal data, or anything sensitive.
Can invisible text be detected?
Yes, easily, with the right tool. The Inspector panel on this page lists every character's codepoint and flags the invisible ones, and most programmer text editors can reveal hidden Unicode. If you receive text that behaves oddly, the cursor jumps strangely, or copy-paste acts up, paste it into the Inspector to see exactly what is hiding inside.
Does this tool upload my text to a server?
No. The generator, the message hider, the decoder, and the inspector all run as JavaScript in your browser. Your text never leaves your device, there is no account or signup, and the page keeps working even if you go offline after it loads.
Free tool by NRTechStudio