Which invisible character should I use?
There is no single ‘blank’ character in Unicode. There are dozens of characters that draw nothing, and they behave differently because they were designed for different jobs — spacing in typesetting, joining letters in Arabic and Hindi, padding in Korean text encoding, or marking byte order in files. That history decides whether an app keeps them.
- U+3164 Hangul Filler is the best general-purpose choice. It is a letter-like character from the Hangul Compatibility Jamo block; most apps draw it as a full-width gap, although web browsers often give it no width because Unicode marks it ‘default ignorable’. Because Unicode does not classify it as whitespace, the usual ‘trim the spaces’ code leaves it alone. It is the usual pick for blank WhatsApp messages and invisible names.
- U+2800 Braille Pattern Blank is a Braille cell with no dots raised. It is visible to software as a symbol, so it survives almost everywhere, which makes it ideal for blank lines in Instagram and TikTok bios. Some game fonts have no Braille glyphs and draw a box instead.
- U+200B Zero Width Space and its relatives (U+200C, U+200D, U+2060, U+FEFF) take up no space at all. They are useful for breaking up links, stopping auto-formatting or making a Discord message that looks empty, but they are also the first thing moderation filters remove.
- U+00A0 No-Break Space, U+2003 Em Space and the other typographic spaces look like ordinary spaces of various widths. They are whitespace, so they are trimmed from the ends of names and messages, but they are handy in the middle of text where you want a gap that will not collapse or wrap.
Each card above measures the character with the fonts on your own device. A card that says draws a glyph here means your system shows a box or shape for that character, so other people on similar devices will see one too.
Why apps strip some blank characters
When a blank character ‘doesn’t work’, one of three pieces of code has almost always removed it. The badges on every card test those three steps live in your browser, so you can predict what will happen before you paste.
| Clean-up step | What it removes | Survivors |
|---|---|---|
Trimming — JavaScript trim(), Python strip(), the regex \s | Every Unicode whitespace character at the start and end, including U+00A0, U+2000–U+200A, U+3000 and (in JavaScript) U+FEFF | U+3164, U+2800, U+200B, U+200C, U+200D, U+2060 |
| NFKC normalisation — used by username systems to stop look-alike names | Folds U+00A0, U+2003 and friends into a plain space, which is then trimmed; turns U+3164 and U+FFA0 into U+1160 | U+2800, zero-width characters (unchanged) |
| Format-character filters — strip Unicode category Cf | U+200B, U+200C, U+200D, U+2060, U+FEFF, U+00AD, bidi controls | U+3164, U+2800 and the spaces |
That is why the Hangul Filler and the Braille blank are so reliable: they pass all three. Game platforms such as Fortnite and PUBG go further and validate names against an allow-list of scripts, so success there changes with each update — treat the table as a starting point and check in the game. Some apps also reject a message or name that contains only invisible characters while accepting one with a single visible letter.
Finding hidden characters in text
Invisible characters cause real problems when they turn up uninvited: a password that ‘is definitely right’ but has a zero-width space pasted in from a chat, a spreadsheet lookup that fails because a cell ends in a no-break space copied from a web page, source code that will not compile because of a byte-order mark, or AI-detector and plagiarism tools tripping on text with watermark characters. Paste the text into the detector and every hidden character is shown as a coloured tag with its short name — ZWSP, NBSP, BOM and so on. Click a tag for the full name and code point.
Red tags are bidirectional controls such as U+202E Right-to-Left Override. They can make text display in a different order from how it is stored, which is how the ‘Trojan Source’ attack hides malicious code in plain sight, so treat them with suspicion in anything you are about to run.
Copy cleaned text removes zero-width and format characters and converts unusual spaces to ordinary ones. It keeps the joiners that emoji like 👩💻 and flags like 🏴 need, and the ZWNJ/ZWJ that Persian and Indian scripts use inside words, unless you untick Keep emoji joiners. Line breaks and tabs are always preserved. If you only want to count what is left, the character counter shows characters, graphemes and bytes side by side.
Tips, limits and etiquette
- Character limits still apply. A blank counts towards limits like any other character. X weights U+3164 and U+2800 as two of its 280, while U+200B counts as one; the generator shows the X weight as you change the count.
- Copying on phones. iOS and Android sometimes show an empty clipboard preview for invisible text; the copy still worked. Paste into the test box to be sure.
- Screen readers. Most read an invisible name as nothing at all or as ‘blank’, and some announce the character name. Give people another way to identify you where it matters.
- Moderation. Using blanks to impersonate someone, dodge a ban or hide links breaks most platforms’ rules and can get an account suspended.
- Styled text instead? If you want text that looks unusual rather than absent, try the cursed text generator, or see how characters are stored with the text to binary converter.
Frequently asked questions
What is the best invisible character to copy?
Start with U+3164, the Hangul Filler. It has the width of a normal character, it is not classed as whitespace, and it survives the trimming most apps apply, so it works for blank WhatsApp messages, invisible names and empty captions. If an app refuses it, the Braille Pattern Blank (U+2800) is the next most reliable choice.
How do I send a blank message on WhatsApp?
Press Copy invisible character above, open the chat, long-press the message box and choose Paste, then send. WhatsApp trims ordinary spaces and refuses a message that is entirely whitespace, but the Hangul Filler is not whitespace, so the message goes through and appears as an empty bubble. The Braille blank also works.
Can I have an invisible name in Fortnite, PUBG or Discord?
Sometimes. Discord and PUBG Mobile have accepted the Hangul Filler in display names, but names made entirely of invisible characters are often blocked, and Epic Games validates Fortnite names against allowed character sets that change between seasons. Try U+3164 first, then U+3164 combined with one visible character, and expect the rules to change.
Why does the character disappear when I paste it?
The app has cleaned it. Most apps trim whitespace from the start and end of fields, normalise usernames with NFKC, or strip zero-width format characters. The badges on each card show which of those steps would remove that character, so pick one marked as surviving all three — the Hangul Filler and Braille blank are the safest bets.
Is a zero width space the same as a blank space?
No. A zero width space (U+200B) has no width at all; it only marks a place where a line may break. A blank character such as the Hangul Filler or an em space takes up visible room. Use zero-width characters to separate things invisibly and blank-width characters when you want an empty-looking gap or line.
How do I remove invisible characters from text?
Paste the text into the invisible text detector on this page. Every hidden character appears as a tag with a count, and you can remove one type with its ✕ button or press Copy cleaned text to strip them all at once. Emoji joiners and line breaks are kept, so your emoji and formatting survive.