Invisible Text Generator
[ㅤ]
The invisible text generator produces six kinds of blank Unicode character, from true zero-width characters to blanks that occupy space without drawing anything. Which one you need depends entirely on the destination, most platforms that reject an empty message also strip zero-width characters, but few strip the Hangul filler.
How it works
These characters fall into two groups, and the difference is what decides whether a given platform accepts them.
- Zero-width space (U+200B), no width at all, a legitimate line-break opportunity. Widely stripped by input sanitisers.
- Zero-width non-joiner (U+200C) and joiner (U+200D). Control how adjacent characters connect. U+200D is what joins emoji into families.
- Word joiner (U+2060). Zero width, and prevents a line break rather than allowing one.
- Hangul filler (U+3164), an actual Korean character that renders as blank space. Not zero-width, and rarely stripped, which is why it works where the others fail.
- Braille blank (U+2800), a Braille pattern with no dots raised. Occupies space, survives most filters.
Examples
A single Hangul filler
Character
Hangul filler (U+3164)
Copies
1
Result
One character, one code point, nothing visible
This is the one that most often works for a blank username or message, because it is a real letter rather than a formatting control and passes non-empty validation.
Several zero-width spaces
Character
Zero-width space (U+200B)
Copies
10
Result
Ten characters that occupy no width at all
The string has a length of ten but takes up no room. Repeating it does nothing visually, which is the key difference from the Hangul filler.
Frequently asked questions
Which invisible character actually works for a blank username?
The Hangul filler (U+3164) most often, because it is a real character rather than a formatting control, so it passes "field must not be empty" checks and is rarely stripped. Zero-width characters are removed by most modern input sanitisers precisely because they were abused.
Why does my invisible text sometimes disappear entirely?
Because the platform normalised it away. Zero-width characters are stripped by a lot of input handling, both for security. They can hide text from moderation, and because they break search. The blank-but-not-zero-width options survive more often.
What is the zero-width joiner actually for?
It tells a renderer to join adjacent characters into one glyph. It is what makes emoji sequences work: the family emoji is several people joined by U+200D. It has a real typographic job in Arabic and Indic scripts too, which is why it exists.
Can invisible characters be used to hide a message?
They can encode data, and that is exactly why platforms strip them. Anything relying on invisible characters surviving a round trip through someone else’s system is fragile. Assume they will be removed.