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
| Symbol | Name | Unicode | HTML | ALT code | CSS | Copy |
|---|---|---|---|---|---|---|
| U+200B ZWSP | Zero width space (The default invisible character. Accepted by most bios and chat apps, stripped by some.) | U+200B | ​ | ALT 8203 | \200B | |
| U+200C ZWNJ | Zero width non-joiner (Stops two letters joining. Survives on platforms that filter U+200B.) | U+200C | ‌ | ALT 8204 | \200C | |
| U+200D ZWJ | Zero width joiner (Glues emoji together, so it is rarely filtered out.) | U+200D | ‍ | ALT 8205 | \200D | |
| U+2060 WJ | Word joiner (Like U+200B but forbids a line break at that point.) | U+2060 | ⁠ | ALT 8288 | \2060 | |
| U+FEFF BOM | Zero width no-break space (Zero width no-break space. Wrecks source files if it lands at the top.) | U+FEFF |  | ALT 65279 | \FEFF | |
| U+00AD SHY | Soft hyphen (Soft hyphen. Invisible until the word wraps, then it shows a hyphen.) | U+00AD | ­ | ALT 173 | \00AD | |
| U+2062 | Invisible times (Invisible times, meant for maths markup.) | U+2062 | ⁢ | ALT 8290 | \2062 | |
| U+2063 | Invisible separator (Invisible separator, a silent comma in maths.) | U+2063 | ⁣ | ALT 8291 | \2063 | |
| U+2064 | Invisible plus (Invisible plus, as in the space inside 3 1/2.) | U+2064 | ⁤ | ALT 8292 | \2064 | |
| U+180E MVS | Mongolian vowel separator (Was a space, reclassified as zero width in Unicode 6.3.) | U+180E | ᠎ | ALT 6158 | \180E | |
| U+034F CGJ | Combining 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
| Symbol | Name | Unicode | HTML | ALT code | CSS | Copy |
|---|---|---|---|---|---|---|
| U+3164 Hangul filler | Hangul 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 blank | Braille pattern blank (An empty braille cell. Best bet for a blank message in Discord and WhatsApp.) | U+2800 | ⠀ | ALT 10240 | \2800 | |
| U+115F Choseong filler | Hangul choseong filler (Blank Hangul lead consonant. Works where U+3164 is blocked.) | U+115F | ᅟ | ALT 4447 | \115F | |
| U+1160 Jungseong filler | Hangul jungseong filler (Blank Hangul vowel. Same idea as U+115F.) | U+1160 | ᅠ | ALT 4448 | \1160 | |
| U+FFA0 Halfwidth filler | Halfwidth hangul filler (Halfwidth version of U+3164, narrower on screen.) | U+FFA0 | ᅠ | ALT 65440 | \FFA0 | |
| U+3000 Ideographic space | Ideographic 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
| Symbol | Name | Unicode | HTML | ALT code | CSS | Copy |
|---|---|---|---|---|---|---|
| U+00A0 NBSP | No-break space (Non-breaking space. Universally supported, but often trimmed at the ends of a field.) | U+00A0 |   | ALT 160 | \00A0 | |
| U+2002 En space | En space (Half an em wide.) | U+2002 |   | ALT 8194 | \2002 | |
| U+2003 Em space | Em space (As wide as the font size.) | U+2003 |   | ALT 8195 | \2003 | |
| U+2004 3/em space | Three-per-em space (One third of an em.) | U+2004 |   | ALT 8196 | \2004 | |
| U+2005 4/em space | Four-per-em space (One quarter of an em.) | U+2005 |   | ALT 8197 | \2005 | |
| U+2006 6/em space | Six-per-em space (One sixth of an em.) | U+2006 |   | ALT 8198 | \2006 | |
| U+2007 Figure space | Figure space (Exactly as wide as a digit. Good for aligning numbers.) | U+2007 |   | ALT 8199 | \2007 | |
| U+2008 Punct space | Punctuation space (As wide as a full stop.) | U+2008 |   | ALT 8200 | \2008 | |
| U+2009 Thin space | Thin space (Used before units and inside French punctuation.) | U+2009 |   | ALT 8201 | \2009 | |
| U+200A Hair space | Hair space (The narrowest visible space.) | U+200A |   | ALT 8202 | \200A | |
| U+202F NNBSP | Narrow no-break space (Narrow no-break space, used in French and in number grouping.) | U+202F |   | ALT 8239 | \202F | |
| U+205F MMSP | Medium mathematical space (Medium mathematical space.) | U+205F |   | ALT 8287 | \205F |
No symbol on this page matches that search. Try a shorter word.
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.
- Zero width: invisible and weightless, but easiest for a platform to strip.
- Fillers (U+3164, U+2800, U+115F): survive trimming and empty checks. Best for blank names.
- Spaces (U+00A0, U+2002 to U+200A): visible as gaps, useful for layout and indentation.
- Soft hyphen (U+00AD) is a special case: it appears as a hyphen if the word wraps at that point.
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.
- Try U+3164 first, then U+2800, then U+115F.
- If a single character is rejected, some fields accept two or three in a row.
- Check the game's naming policy before using a rename token on it.
- Never use an invisible character to impersonate another player. That is the fastest route to a ban.
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.
- Search breaks: a zero width space inside a word means CTRL + F will never find that word.
- Code breaks: a zero width space in a JavaScript or Python file produces a syntax error on a line that looks perfect, and a U+FEFF at the top of a PHP file causes the headers already sent error.
- Spreadsheets break: a no-break space pasted in from a web page makes a number into text, so SUM returns zero and VLOOKUP misses.
- Accessibility: a screen reader has nothing to announce for a blank name, so it reads out nothing at all or reads the code point.
- Moderation: some platforms flag invisible characters as evasion and remove the post.
- Passwords and two factor codes: never, because you will not be able to retype it.
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.
- To see them, paste the text into a code editor with whitespace rendering turned on.
- LEN in a spreadsheet tells you the truth: a cell that looks empty with LEN of 1 holds an invisible character.
- On the command line, perl -CSD -pe 's/\x{200b}|\x{feff}//g' file.txt strips the common ones.
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.