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 filling empty fields in bot embeds, but they are also the first thing moderation filters remove — a message made of a lone zero-width space is usually rejected as empty.
- 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.
Invisible names and blank messages, app by app
The Pick your app panel copies a ready-made string for each field. The single most important rule: a display name is not a username. Instagram, TikTok, Discord, Telegram, Snapchat, X and Roblox all have a second, unique handle (the @username) that only accepts letters, numbers and one or two symbols. No invisible character will ever get into those; the blank goes in the display name, nickname or bio.
| App | Field | What the picker copies | Reports |
|---|---|---|---|
| Message, profile name | U+3164 × 1 | Consistently reported | |
| Instagram, TikTok | Name; blank bio line | U+3164 × 1; U+2800 on its own line | Consistently reported |
| Discord | Message; display name | U+3164 × 1 | Messages reported; names mixed |
| Telegram | First name, message | U+3164 × 1 | Reported |
| Steam | Profile name | U+3164 × 2 | Reported |
| PUBG / BGMI, Free Fire | In-game name | U+3164 × 3 | Reported |
| Fortnite | Epic display name | U+3164 × 3, or × 2 + a dot | Mixed |
| Roblox, X, Snapchat | Display name | U+3164 (+ a dot for Roblox) | Mixed |
We have not tested these on our own accounts, and every pick is labelled accordingly. Name changes are rate-limited or cost in-game currency on several of these platforms, so paste into the test box first and read what arrived before you commit.
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. Games go further and validate names against their own rules, and those rules differ: Fortnite (Epic) needs at least three characters and many recent reports say all-blank names fail; PUBG Mobile and Free Fire players usually need two or three Hangul Fillers to pass the minimum length; Steam profile names generally accept them; Roblox filters display names and reportedly rejects all-invisible ones. Some apps also reject a message or name that contains only invisible characters while accepting one with a single visible letter — the picker offers a blank + visible option for exactly that case.
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?
Choose WhatsApp under Pick your app and press Copy for empty message, then long-press the message box, paste and send. WhatsApp refuses a message that is only whitespace, but the Hangul Filler is not whitespace, so it is reported to send as an empty bubble. If your version refuses it, the Braille blank (U+2800) is the usual backup.
Can I have an invisible name in Fortnite, PUBG, Free Fire or Discord?
Sometimes, in the display name only. PUBG Mobile and Free Fire players report success with two or three Hangul Fillers; Steam profile names usually accept them; Fortnite needs three characters and many recent attempts fail, so try two blanks plus a dot. Discord display names get mixed reports. Use Pick your app for the exact string, 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.
Can I make my @username invisible on Instagram, TikTok or Discord?
No. Usernames (the @handle) on Instagram and TikTok accept only letters, numbers, full stops and underscores; Discord usernames accept lower-case letters, digits, full stops and underscores; Telegram, Snapchat, X and Roblox have similar rules. Invisible characters only work in the display name, nickname or bio, which is what the picker targets.
Why does the test box say only ordinary spaces arrived?
Your clipboard held a normal space (U+0020) instead of the invisible character, usually because the copy failed or an app converted it. Apps trim ordinary spaces from names and messages, so it would not stay blank. Copy again from a card or the picker and paste into the test box until it confirms the right code point.