§SymbolKit
Copy and paste

Invisible Character and Blank Text Copy and Paste

Every button below copies a real character that shows nothing on screen. The button itself is labelled with the code point, because there is no glyph to display. Click one, paste it wherever you need a name, a message or a line that looks empty but is not.

They are not all the same. Zero width characters take up no space at all, fillers such as the Hangul filler and the braille blank are ordinary printable characters that happen to be drawn blank, and the space family are spaces of fixed widths. Which one you need depends entirely on what the other end is checking for.

One honest warning before you start: platforms fight back. Many sites strip these characters on submit, some treat a string of them as spam, and a few games will rename or suspend an account with a blank name. The notes under each character and the section on risks below say where they do and do not work.

Invisible character generator

Pick how many copies you need, then choose a character. Nothing will look like it happened: that is the point. Paste it where you need blank text.

Zero width characters

No width at all. Best when you need to break up text without changing how it looks.

Reference table Unicode, HTML entity, ALT code and CSS escape
Zero width characters: Unicode, HTML entity, ALT code and CSS escape for every character.
SymbolNameUnicodeHTMLALT codeCSSCopy
U+200B ZWSPZero width space (The default invisible character. Accepted by most bios and chat apps, stripped by some.)U+200B​ALT 8203\200B
U+200C ZWNJZero width non-joiner (Stops two letters joining. Survives on platforms that filter U+200B.)U+200C‌ALT 8204\200C
U+200D ZWJZero width joiner (Glues emoji together, so it is rarely filtered out.)U+200D‍ALT 8205\200D
U+2060 WJWord joiner (Like U+200B but forbids a line break at that point.)U+2060⁠ALT 8288\2060
U+FEFF BOMZero width no-break space (Zero width no-break space. Wrecks source files if it lands at the top.)U+FEFFALT 65279\FEFF
U+00AD SHYSoft hyphen (Soft hyphen. Invisible until the word wraps, then it shows a hyphen.)U+00AD­ALT 173\00AD
U+2062Invisible times (Invisible times, meant for maths markup.)U+2062⁢ALT 8290\2062
U+2063Invisible separator (Invisible separator, a silent comma in maths.)U+2063⁣ALT 8291\2063
U+2064Invisible plus (Invisible plus, as in the space inside 3 1/2.)U+2064⁤ALT 8292\2064
U+180E MVSMongolian vowel separator (Was a space, reclassified as zero width in Unicode 6.3.)U+180E᠎ALT 6158\180E
U+034F CGJCombining grapheme joiner (Combining grapheme joiner. Invisible, but it can reorder nearby marks.)U+034F͏ALT 847\034F

Blank characters that take up space

Printable characters with an empty glyph. These are the ones that get past empty-field checks.

Reference table Unicode, HTML entity, ALT code and CSS escape
Blank characters that take up space: Unicode, HTML entity, ALT code and CSS escape for every character.
SymbolNameUnicodeHTMLALT codeCSSCopy
U+3164 Hangul fillerHangul filler (The classic blank name character. Counts as a printable letter, so it survives empty-field checks.)U+3164ㅤALT 12644\3164
U+2800 Braille blankBraille pattern blank (An empty braille cell. Best bet for a blank message in Discord and WhatsApp.)U+2800⠀ALT 10240\2800
U+115F Choseong fillerHangul choseong filler (Blank Hangul lead consonant. Works where U+3164 is blocked.)U+115FᅟALT 4447\115F
U+1160 Jungseong fillerHangul jungseong filler (Blank Hangul vowel. Same idea as U+115F.)U+1160ᅠALT 4448\1160
U+FFA0 Halfwidth fillerHalfwidth hangul filler (Halfwidth version of U+3164, narrower on screen.)U+FFA0ᅠALT 65440\FFA0
U+3000 Ideographic spaceIdeographic space (A full-width space used in Japanese and Chinese text.)U+3000 ALT 12288\3000

Spaces of different widths

Real spaces, from a hair space to a full em. Useful for spacing that a normal space bar cannot give you.

Reference table Unicode, HTML entity, ALT code and CSS escape
Spaces of different widths: Unicode, HTML entity, ALT code and CSS escape for every character.
SymbolNameUnicodeHTMLALT codeCSSCopy
U+00A0 NBSPNo-break space (Non-breaking space. Universally supported, but often trimmed at the ends of a field.)U+00A0 ALT 160\00A0
U+2002 En spaceEn space (Half an em wide.)U+2002 ALT 8194\2002
U+2003 Em spaceEm space (As wide as the font size.)U+2003 ALT 8195\2003
U+2004 3/em spaceThree-per-em space (One third of an em.)U+2004 ALT 8196\2004
U+2005 4/em spaceFour-per-em space (One quarter of an em.)U+2005 ALT 8197\2005
U+2006 6/em spaceSix-per-em space (One sixth of an em.)U+2006 ALT 8198\2006
U+2007 Figure spaceFigure space (Exactly as wide as a digit. Good for aligning numbers.)U+2007 ALT 8199\2007
U+2008 Punct spacePunctuation space (As wide as a full stop.)U+2008 ALT 8200\2008
U+2009 Thin spaceThin space (Used before units and inside French punctuation.)U+2009 ALT 8201\2009
U+200A Hair spaceHair space (The narrowest visible space.)U+200A ALT 8202\200A
U+202F NNBSPNarrow no-break space (Narrow no-break space, used in French and in number grouping.)U+202F ALT 8239\202F
U+205F MMSPMedium mathematical space (Medium mathematical space.)U+205F ALT 8287\205F

What an invisible character actually is

It is a normal Unicode code point whose glyph is nothing. The text is there, your cursor moves through it, a character counter counts it, but the renderer draws no ink. That is the whole trick.

It matters which family you pick. Zero width characters (U+200B, U+200C, U+200D, U+2060, U+FEFF) are classed as format characters. They occupy no width, and because software knows they are formatting, they are the first thing a sanitiser removes. Fillers such as U+3164 Hangul filler and U+2800 braille pattern blank are the opposite: as far as the software is concerned they are ordinary letters or symbols that happen to look empty, so they pass validation that rejects whitespace.

That is why a form which refuses an empty name will often accept U+3164. The string is not empty, and trimming whitespace does not remove it, because it is not whitespace. A plain space (U+0020) or a no-break space gets trimmed away and you are back to an empty field.

How to send a blank message

Copy U+2800 (braille pattern blank) or U+3164 (Hangul filler), paste it into the message box and send. Do not use the zero width space for this: most chat apps strip it or count the message as empty and refuse to send.

It generally works in WhatsApp, Telegram, Discord, Facebook Messenger, iMessage and plain SMS. Discord accepts the braille blank because the message is not whitespace-only. If one character does not go through, paste two or three, or try the other filler.

Some apps have closed this off. WhatsApp tightened its empty-message check more than once, so the result depends on your version, and a few clients will show the message as a small empty bubble or as a blank preview in the notification. There is no way to guarantee it across every app and every update.

Blank names in games

The usual method is to paste U+3164 into the name field, on its own for a fully blank name or between letters to create gaps. Among Us made this famous, and it has also worked at various times in Free Fire, PUBG Mobile, Mobile Legends, 8 Ball Pool and Call of Duty Mobile.

Whether it works today is a per-game, per-patch question. Studios add name validation precisely to stop this, so a character that worked last season can be rejected, replaced with a placeholder, or silently converted to a normal space after the next update.

Worth knowing before you spend a rename token: a blank or invisible name breaks reporting and moderation, so plenty of games list it under name policy violations. Roblox and Fortnite reject the characters outright. Others accept the name and then rename the account later. If the game's terms say display names must be readable, a blank name is a rule break even when the field accepts it.

Instagram bios, captions and line breaks

Instagram trims whitespace and collapses runs of blank lines, which is why a bio typed with three empty lines comes out as one paragraph. Putting an invisible character on each otherwise empty line gives the line something to hold, so the break survives.

For a bio: type the first line, press return, paste the character, press return, then type the next line. Repeat for each gap you want. The same approach works for captions and comments. If the caption box is fighting you, write the whole thing in Notes or Keep with the invisible characters in place and paste the finished text in one go.

This is less necessary than it used to be. Instagram now keeps line breaks typed directly in the app in most versions, so try it plainly first and only reach for the trick if your spacing collapses. Be sparing in comments: a comment consisting only of invisible characters is a classic spam signal and can get the comment hidden or the account rate limited.

Where invisible characters cause real problems

These characters are genuinely useful, and they also cause a specific set of bugs that are hard to see because the cause is invisible. It is worth knowing them before you paste one into something important.

The biggest category is silent rejection. Usernames, email addresses, domain names and payment fields are normalised or validated in ways that drop format characters, so your carefully placed U+200B disappears somewhere between the form and the database, or the record is saved with it and never matches again when you search for it.

Anti-spam systems treat them as a signal, because hiding characters inside words is a standard filter evasion technique. An invisible character in an email subject or in the middle of a word can raise the spam score of a message that would otherwise arrive fine.

How to find and remove invisible characters

If you have inherited text that behaves oddly, the fix is to strip the characters rather than retype everything. In Microsoft Word, open Find and Replace, type ^u8203 in the Find box (8203 is the decimal value of U+200B), and leave the Replace box empty. Repeat with ^u65279 for the byte order mark and ^u160 for a no-break space, replacing that last one with a normal space.

In VS Code or Sublime Text, turn on regex search and look for [\u200B-\u200D\u2060\uFEFF] with an empty replacement. VS Code also highlights invisible and ambiguous characters in code by default, which is usually your first clue that one is there.

In Excel and Google Sheets, CLEAN is not enough: it only removes control characters 0 to 31, so it leaves both the no-break space and the zero width space untouched. Use =TRIM(SUBSTITUTE(SUBSTITUTE(A1,UNICHAR(160)," "),UNICHAR(8203),"")) to clear the two most common offenders and tidy the result.

Frequently asked questions

What is an invisible character?

A real Unicode character that is drawn as nothing. The text contains it and counts it, but you see empty space. The most used ones are the zero width space (U+200B), the Hangul filler (U+3164) and the braille pattern blank (U+2800).

Which invisible character should I use for a blank message or name?

Start with U+3164 Hangul filler or U+2800 braille pattern blank. Both count as printable characters, so they survive the empty-field and whitespace checks that remove a zero width space or a plain space.

Why did my invisible character disappear?

The site stripped it. Many platforms normalise text on submit and delete format characters such as U+200B and U+FEFF, and most trim leading and trailing whitespace. Try a filler character instead, and test with a throwaway edit before you rely on it.

Can I get banned for using an invisible character?

It is possible. Most sites do not care, but plenty of games require readable display names, and using invisible characters to impersonate someone, dodge a word filter or spam a feed breaks the rules almost everywhere. Read the naming policy first.

Is an invisible character the same as a space?

No. A space (U+0020) is whitespace, so software trims it and treats a field containing only spaces as empty. A zero width character has no width at all, and a filler such as U+3164 is treated as a letter, which is why it survives where a space does not.

How do I remove invisible characters from text I copied?

In Word, use Find and Replace with ^u8203 and an empty replacement. In a code editor, search the regex [\u200B-\u200D\u2060\uFEFF]. In a spreadsheet, wrap the cell in SUBSTITUTE with UNICHAR(160) and UNICHAR(8203), then TRIM it.

Related symbol pages