About the Invisible Text Generator
What is invisible text?
Invisible text is text made of Unicode characters that apps store like letters but show as blank.
Each invisible character has its own Unicode code point, such as U+3164 for the Hangul Filler or U+200B for the Zero Width Space. Software stores and sends these characters like any letter, so a name or message made only of them is not empty, even though you see nothing on screen.
People also call it blank text, empty text, invisible letters, an invisible character or an invisible font. No special font is involved, only characters that have no visible shape.
What should you know about invisible characters?
Invisible characters are real text, so apps count and store them like letters.
- Space trimming keeps three blanks and drops two. JavaScript's
trim() and Python's strip() keep the Hangul Filler, the Braille Pattern Blank and the Zero Width Space, but they remove the Ideographic Space and the No-Break Space from the ends of text.
- Width depends on the character. In Chrome on Windows at 16px, the Hangul Filler is 16 pixels wide, the Braille Pattern Blank about 10 and the Zero Width Space 0, and other fonts can change those numbers.
- Four common blanks take 3 bytes each. The Hangul Filler, the Braille Pattern Blank, the Zero Width Space and the Ideographic Space each count as one character in JavaScript and take 3 bytes in UTF-8, where a plain letter takes 1.
- Emoji and some languages need invisible characters. The family emoji 👨👩👧 is three emoji joined by two Zero Width Joiners (U+200D), and Persian puts a Zero Width Non-Joiner (U+200C) inside many words, so the reveal box leaves joiners alone inside emoji and in scripts that need them.
- Tag characters can hide whole sentences. The Unicode tag characters from U+E0020 to U+E007E mirror the printable ASCII characters without drawing anything, and security researchers have used them to hide instructions in text sent to AI chatbots.
Which invisible character should you use?
Use the Hangul Filler for most blank names and messages.
The Hangul Filler is a wide blank that survives space trimming. Switch to the Braille Pattern Blank if an app refuses it, and keep the Zero Width Space, an invisible space with no width, for splitting words or links with no visible gap.
Invisible characters compared by width and by whether JavaScript trim() removes them from the ends of text
| Character | Code point | Width at 16px | Removed by trim() | Best for |
| Hangul Filler | U+3164 | 16px | No | Blank names and empty messages |
| Braille Pattern Blank | U+2800 | about 10px | No | A backup blank when an app refuses the Hangul Filler |
| Zero Width Space | U+200B | 0px | No | Splitting words or links with no visible gap |
| Ideographic Space | U+3000 | 16px | Yes | Wide gaps inside a line of text |
| Space | U+0020 | about 4.5px | Yes | Ordinary spacing between words |
We measured the widths in Chrome on Windows with the Inter font at 16px. The trim() column follows JavaScript's String.prototype.trim, and Python's str.strip() gives the same result for all five.
How do you type invisible text?
You copy invisible text and paste it, because keyboards have no key for it.
- Copy a blank character. Press Copy on the Hangul Filler card, or on another card when you need a different width.
- Or turn a message invisible. Type it in the converter and copy the result, which has one blank for every character you typed.
- Or generate a run of blanks. Choose how many you need, up to 10,000, and copy them in one go.
- Paste it where it goes. Use Ctrl+V on Windows, Cmd+V on a Mac, or press and hold on a phone and tap Paste.
- Check it if something looks wrong. Paste the text into the reveal box to see every hidden character by name.
Example
This message will be converted to 11 Hangul Fillers and one line break. The options are the defaults, Hangul Filler with Keep line breaks on:
U+3164 U+3164 U+3164 U+3164
U+3164 U+3164 U+3164 U+3164 U+3164 U+3164 U+3164
The wave emoji becomes one blank, not two, because the converter counts characters the way you see them. Copied out, the result is 12 characters and 34 bytes, the line break included.
The reveal box finds invisible characters instead of making them. Press its Sample button and it finds 30 hidden characters in one short message, a No-Break Space, a Zero Width Space and 28 tag characters that spell out a hidden instruction to reply only in pirate speak.
Common mistakes
Invisible text fails for a few predictable reasons.
- Using a normal space. The message will not send or the name is refused, because an app that trims spaces finds nothing left. Copy a Hangul Filler instead of pressing the space bar.
- Using the Ideographic Space on its own. It looks like a wide blank, but
trim() removes it just like a space, so a name made only of it counts as empty. Keep it for gaps inside a line.
- Expecting the Zero Width Space to make a gap. It is 0 pixels wide, so two words joined by it look glued together. Use the Hangul Filler or the Braille Pattern Blank for visible space.
Common Use Cases
People use invisible text for names, messages, spacing and checking copied text.
- Blank usernames in games and apps. Google's search suggestions for invisible names include Discord, Roblox, Fortnite, Xbox and Steam. Each sets its own name rules, so test a blank name before you rely on it.
- Empty messages. Put a Hangul Filler in the box when a chat app will not send an empty message, then press send.
- Spacing in bios and captions. Put a Hangul Filler or a Braille Pattern Blank on an empty line of an Instagram or TikTok caption, so an app that drops blank lines keeps it.
- Cleaning copied text. Find and remove zero-width characters that break a password, a search, a link or a line of code after copy and paste.
- Checking text before an AI reads it. Look for tag characters in an email, a web page or a document before you paste it into a chatbot.
The Zero Width Space page covers that one character in depth. For tiny letters instead of blank ones, use the Small Text Generator, and to trim lines and collapse stray spaces in pasted text, use the Text Cleaner. To copy blank space in one click or build long blank text over many lines, use Blank Text Copy and Paste.
Frequently Asked Questions
Is an invisible character the same as a space?
No, an invisible character is a different Unicode character from the space. JavaScript's trim() and Python's strip() remove the space (U+0020) from the ends of text but keep the Hangul Filler (U+3164), which Unicode classes as a letter.
How do you send a blank message?
Copy a Hangul Filler, paste it into the chat box and press send. If the send button stays gray, that app does not accept the Hangul Filler, so try the Braille Pattern Blank instead.
How do you make an invisible name in a game or on Discord?
Paste a Hangul Filler into the name field instead of typing a name. Discord, Roblox, Fortnite and Steam each set their own name rules, so a blank name that one of them accepts can be refused by another.
Why do I see a box instead of a blank space?
A box appears when the font on that device has no drawing for the invisible character. Copy a different invisible character, such as the Braille Pattern Blank, and paste it again.
Can invisible text be detected?
Yes, invisible text can be detected, because every invisible character is still stored in the text. Our reveal box lists each one by name and code point and decodes hidden tag text.
Can you type invisible text on a keyboard?
Not directly, because keyboards have no key for the Hangul Filler or the Zero Width Space. On Windows, Alt+0160 types a No-Break Space, but trim() removes that just like a normal space, so copying and pasting is the reliable way.