Last updated October 12, 2026 · Report an error
This tool weaves an invisible zero-width space (U+200B, a Unicode character with no visible glyph and no display width) between every character — or every word, depending on your choice — of your text. The text still reads and displays exactly the same to a human eye, but its underlying character sequence is different from the original, unmodified text. This is a useful, hands-on way to explore how text-processing systems actually work under the hood: many simple content filters, spam detectors, and keyword-match systems compare text as a literal sequence of characters, and inserting invisible characters between letters can cause a word to no longer exactly match a filter that's specifically looking for that literal, unbroken string — while looking completely unchanged to a reader. It's also a handy character-level curiosity for testing how robust a system's text handling is.
How it works
A zero-width space character (U+200B) — which the Unicode standard defines as a formatting character with no visible width — is inserted between each character, or between each word, of the input text depending on your chosen mode. Because this character renders as literally nothing, the visual appearance of the text is completely unchanged, even though the sequence of underlying Unicode characters (and therefore anything comparing the raw text) is now different from the original.
- Enter text.
- Enter insert between.
- Click Calculate to see your results.
Examples
Bypassing a simple exact-match filter
Inserting zero-width spaces into a word can cause it to visually display unchanged while no longer exactly matching a simple keyword-match filter looking for that literal, unbroken word.
Testing word-boundary insertion vs. character-level insertion
Inserting zero-width spaces only between words (rather than between every character) preserves each word's internal spelling intact, which is useful for testing how a system handles invisible characters at word boundaries specifically rather than within words.
Who should use it
- Testing how a filter or search handles invisible Unicode characters.
- Educational demonstration of invisible-character tricks.
- QA testing a system's text normalization behavior.
Industry applications
- Software QA/testing
- Security/content-filter research
Advantages
- Text displays visually unchanged.
- Choice of between-character or between-word insertion.
- Useful, hands-on way to learn how invisible Unicode characters affect text matching.
Limitations
- Some platforms strip zero-width characters, undoing the effect.
- Not a dependable bypass for well-maintained modern content filters.
Common mistakes to avoid
- Assuming this will bypass every kind of content filter — many modern filters normalize/strip invisible characters before matching, specifically because this technique is well documented.
- Not realizing some platforms will silently strip the inserted characters, making the output identical to the original text once it passes through that platform.
- Using character-level insertion when word-level insertion (or vice versa) would better suit the specific test you're running.
Best practices
- Use the Unicode Character Detector afterward if you want to confirm exactly where the invisible characters were inserted.
- Treat this primarily as an educational or QA-testing tool rather than a dependable way to evade a well-maintained filter.
- Test the output on your actual target platform, since behavior toward invisible characters varies widely between systems.
Tips
- Pair with the Unicode Character Detector to see exactly where each invisible character landed.
- Try both character-level and word-level insertion modes to compare how differently they affect matching behavior.