What is an invisible character?
An invisible character is a real Unicode character that happens to render as nothing. There is no dedicated blank symbol in the standard — what exists instead is a set of characters whose purpose is not to appear: zero-width spaces that mark where a line may break, joiners that control how neighbouring letters combine, and fixed-width spaces thinner than a normal one. They are genuine characters with real code points, they occupy a position in the string, and they are counted by everything that counts characters.
That is what makes them useful. A field that must not be empty but must look empty, a social profile whose display name is blank, a message with no visible text, a line break added to a bio that the platform would otherwise strip — all of these are solved by pasting one or more invisible characters. The tool generates any of them in any quantity, and copies them to the clipboard like ordinary text.
The same knowledge solves a mystery in the other direction. Copied text frequently carries invisible characters by accident: a no-break space pasted from a web page stops a spreadsheet recognising a number, an email address with a zero-width space inside it is rejected by a mail gateway, a heading from a word processor may open with a byte-order mark. The inspector here counts the hidden characters in a block of text and tells you which kinds they are.
How to copy and paste an invisible character
- Pick the invisible character you want. Zero-width space is the usual choice; blank braille and the Hangul filler survive validators that reject zero-width ones.
- Set how many you need, or press one of the quantity buttons. A single character is enough for most fields; a few hundred will pad out a bio line.
- Press Copy. The characters are on your clipboard and look like nothing at all.
- Paste into the field, message or profile name where you need it, and check how it renders — some platforms trim or reject the character.
- To find characters already in your text, paste it into the inspector at the bottom and read the breakdown by code point.
- If a value will not validate or a number will not calculate, inspect it first — a hidden character is the most common cause.
Invisible Character Generator limits and rules
| Item | Limit |
|---|---|
| Characters offered | Ten, including zero-width space, no-break space, hair space, blank braille and the Hangul filler |
| Quantity | Up to 5,000 in one copy |
| Inspection | Counts hidden characters by code point and explains each one |
| What is not counted | Ordinary spaces, which are visible behaviour even when they are not visible ink |
| Platform support | Varies — platforms that care about this strip or reject specific characters |
| Validation | Not touched. Some validators reject zero-width characters and accept blank braille |
| Not handled | Right-to-left control characters, variation selectors and combining marks |
When to use it
- A blank display name, bio or caption where the platform insists the field cannot be empty.
- Adding a line break to a social bio, which often cannot accept a real one.
- Sending a message with no visible text, or a placeholder in a chat.
- Diagnosing why a pasted number will not calculate or a pasted email address will not validate.
- Producing a spacer for a plain-text layout where an ordinary space would be collapsed.
Is it private?
Nothing is sent anywhere. The characters are generated in this page from their Unicode code points, and the inspection works on text you paste into your own browser — no storage, no account, no request.
Frequently asked questions
Zero-width space for a blank name or caption, because it occupies no width at all and is the most widely supported. Blank braille or the Hangul filler when a validator rejects zero-width characters, since both are ordinary letters as far as that check is concerned. No-break space when the text may be trimmed: it is technically whitespace, so form logic that strips whitespace will remove it, but it also survives HTML rendering intact, which a zero-width space does not always do inside a collapsed sequence.
Because the platform normalises its input. Unicode has a formal normalisation step that many systems apply, and some invisible characters are stripped by it; others are dropped by a security filter that removes zero-width characters specifically because they are used to hide text in URLs. A few platforms do something simpler and trim whitespace from both ends of a field, which removes any space-like character at the start or end. Trying one of the non-whitespace options, such as blank braille, is the usual fix.
They are standard Unicode, so using them is not a hack in any technical sense — they are characters doing what they were defined to do. What varies is whether a particular platform permits them, and some explicitly do not, because the same technique can be used to slip text past a filter or to make one string look like another. Using one to leave a name blank is harmless; using one to make a fake profile look like a real person is not, and that is the line worth keeping on the right side of.
Paste it into the inspector. It compares the visible length with the true length and lists every hidden code point it finds, with a plain name for each. The symptom that usually prompts this is a value that looks right and behaves wrong: a number that will not sum, a spreadsheet cell that stays text, an email address that a gateway rejects, or two strings that look identical but are not equal in a comparison. Any of those is worth a quick inspection.
Yes, and that is sometimes the point and sometimes the problem. A zero-width space is one character to every counter that follows the Unicode standard, so padding a field with a hundred of them consumes a hundred characters of the limit. It also inflates byte counts differently: the common ones are three bytes in UTF-8, so a hundred of them cost three hundred bytes on the wire. The inspector here reports the true character count so the discrepancy is not a surprise.
A zero-width space is not whitespace and has no width, so it can sit inside a word and tell the renderer that a line may break there — its intended use is exactly that, allowing a break in a long URL or identifier. A no-break space is the opposite: it is whitespace, it has the width of a normal space, and it prevents a line break, which is why it is used to keep a number and its unit together. Choosing between them for a blank field is really a question of which one your target platform tolerates.
Related tools
Written and maintained by Md. Nur Hossain Repon.