How Invisible Character works
An invisible character is a Unicode character that draws nothing on screen. This page gives you 20 of them to copy, from the Hangul Filler (U+3164) and Braille Pattern Blank (U+2800), which take up room like a space, to the Zero Width Space (U+200B), which takes up none. Choose one, set how many copies you want (1 to 5,000) and copy the result. For each character you also get its code point, its HTML, CSS and JavaScript escapes, and whether an ordinary space trim removes it, which is the main reason blank text vanishes after pasting. A second box does the reverse: paste any text and every hidden character in it is revealed and counted. No blank character is accepted everywhere, and sites change what they filter without notice.
Blank Unicode characters: code points, width and trim behaviour
These are the 20 characters in the Character menu. The trim column is the real result of JavaScript's trim() on each one, which is what most web forms use to strip leading and trailing space.
| Code point | Name | Width | Removed by a space trim | What it is for |
|---|---|---|---|---|
| U+3164 | Hangul Filler | Wide | No | A Korean placeholder classed as a letter. The usual first choice for blank-looking names, bios and messages. |
| U+200B | Zero Width Space | Zero | No | Marks where a long word or URL may wrap. Adds no gap. Often stripped by name and message filters. |
| U+2800 | Braille Pattern Blank | Medium | No | An empty Braille cell, classed as a symbol. Used for blank lines and spacing in captions. |
| U+00A0 | No-Break Space | Normal space | Yes | Keeps two words on one line. The HTML character. |
| U+2003 | Em Space | Wide | Yes | A space as wide as the font size, for indents and wide gaps. |
| U+2002 | En Space | Medium | Yes | Half the width of an em space. |
| U+2009 | Thin Space | Narrow | Yes | A narrow gap, for example between a number and its unit. |
| U+200A | Hair Space | Very narrow | Yes | The thinnest visible space. |
| U+2007 | Figure Space | One digit | Yes | As wide as a digit, so columns of numbers line up. |
| U+202F | Narrow No-Break Space | Narrow | Yes | A thin space that does not wrap, used before some French punctuation. |
| U+3000 | Ideographic Space | Wide | Yes | The full-width space of Chinese and Japanese text. |
| U+200C | Zero Width Non-Joiner | Zero | No | Stops two letters joining. Needed in Persian and several Indic scripts. |
| U+200D | Zero Width Joiner | Zero | No | Joins neighbouring characters, as in combined emoji. |
| U+2060 | Word Joiner | Zero | No | Prevents a line break without adding width. |
| U+FEFF | Zero Width No-Break Space | Zero | Yes | The byte order mark at the start of some text files. |
| U+00AD | Soft Hyphen | Zero until a wrap | No | An optional hyphenation point, shown only when the line breaks there. |
| U+115F | Hangul Choseong Filler | Varies by font | No | Stands in for a missing leading consonant in a Korean syllable. |
| U+1160 | Hangul Jungseong Filler | Varies by font | No | Stands in for a missing vowel in a Korean syllable. |
| U+FFA0 | Halfwidth Hangul Filler | Medium | No | The half-width form of the Hangul Filler. |
| U+180E | Mongolian Vowel Separator | Zero or narrow | No | A Mongolian format character that was classed as a space before Unicode 6.3. |
Width is how the character normally renders; exact width depends on the font. A No in the trim column does not mean a site will accept the character, only that a plain trim will not remove it.
HTML, CSS and JavaScript codes for common blank characters
Taken from the tool's own output for each character. Use the escape when you need the character in source code, where a pasted blank is easy to lose.
| Character | HTML entity | CSS content | JavaScript or JSON | URL-encoded | UTF-8 bytes |
|---|---|---|---|---|---|
| U+3164 Hangul Filler | ㅤ or ㅤ | "\3164" | "\u3164" | %E3%85%A4 | E3 85 A4 |
| U+200B Zero Width Space | ​ or ​ | "\200B" | "\u200B" | %E2%80%8B | E2 80 8B |
| U+2800 Braille Pattern Blank | ⠀ or ⠀ | "\2800" | "\u2800" | %E2%A0%80 | E2 A0 80 |
| U+00A0 No-Break Space | or   | "\00A0" | "\u00A0" | %C2%A0 | C2 A0 |
| U+2003 Em Space |   or   | "\2003" | "\u2003" | %E2%80%83 | E2 80 83 |
| U+3000 Ideographic Space |   or   | "\3000" | "\u3000" | %E3%80%80 | E3 80 80 |
| U+200D Zero Width Joiner | ‍ or ‍ | "\200D" | "\u200D" | %E2%80%8D | E2 80 8D |
| U+2060 Word Joiner | ⁠ or ⁠ | "\2060" | "\u2060" | %E2%81%A0 | E2 81 A0 |
| U+FEFF Zero Width No-Break Space |  or  | "\FEFF" | "\uFEFF" | %EF%BB%BF | EF BB BF |
| U+00AD Soft Hyphen | ­ or ­ | "\00AD" | "\u00AD" | %C2%AD | C2 AD |
Why blank text disappears after you paste it
Software decides what to do with a character from its Unicode category, not from how it looks. That is why two blanks that look the same on screen behave differently in a form.
Spaces. U+00A0, U+2003, U+3000 and the other true space characters are white space. A standard trim removes them from both ends of a value, so a name made only of these becomes empty and fails a required-field check. U+FEFF is trimmed too.
Format characters. U+200B, U+200C, U+200D and U+2060 are not white space, so a trim keeps them. Because they have no width and are often used to dodge word filters or imitate another user's name, many sites remove them deliberately.
Letters and symbols. U+3164, U+115F, U+1160 and U+FFA0 are classed as letters and U+2800 as a symbol. A trim keeps them and a letters-only rule may accept them, which is why they are the usual choice for blank-looking text. Sites that want to stop blank names add these code points to a block list one by one.
The result is that no single character works everywhere and nothing that works today is certain to work next month. Paste, save, reload and look.
Example outputs
Real results from the tool.
One blank for a name or message
Character: U+3164 Hangul Filler. How many copies: 1.
One character, U+3164. Width: Wide. Removed by a space trim: No. Size in UTF-8: 3 bytes.
Five zero width spaces
Character: U+200B Zero Width Space. How many copies: 5.
Five characters with no visible width. Removed by a space trim: No. Size in UTF-8: 15 bytes.
A character counter will report 5 even though nothing can be seen.
Three no-break spaces
Character: U+00A0 No-Break Space. How many copies: 3.
Three characters. Removed by a space trim: Yes. Size in UTF-8: 6 bytes.
Useful between words, but a field holding only these will usually be treated as empty.
A long blank block
Character: U+2800 Braille Pattern Blank. How many copies: 5000.
5,000 characters, 15,000 bytes in UTF-8.
Revealing hidden characters
Text to check: the letters Hel, a Zero Width Space, lo, a Hangul Filler, a space, wor, a Zero Width Space, ld.
Hel[U+200B]lo[U+3164] wor[U+200B]ld, with a table showing U+200B found 2 times, first at character 4, and U+3164 found once at character 7.
What people use blank characters for
None of these is guaranteed on any particular app. Each depends on what that app filters at the time.
- A display name, nickname or game name that looks empty.
- A message or comment with no visible content.
- Blank lines and extra spacing in a bio or caption where ordinary line breaks are collapsed.
- A placeholder in a spreadsheet cell, form field or file name that must not be empty.
- Test data for checking how your own form, database or search handles blank-looking input.
- Finding the stray zero-width character that makes two identical-looking strings compare as different.
Limits of this tool
- It cannot tell you which apps accept which character. The table reports Unicode facts and trim behaviour only.
- It repeats one character at a time. To mix characters, copy each and join them yourself.
- The checker recognises the 20 characters in the menu plus the directional marks, the other Unicode spaces, the invisible math operators and tag characters. Ordinary spaces, tabs and line breaks are not flagged.
- The checker flags every Zero Width Joiner, including the ones that legitimately hold a combined emoji together.
- Blank text is a problem for screen reader users and for anyone searching for you by name. Avoid it where people need to find or address you.
Step by step
- 1
Choose a blank from the Character menu. It starts on U+3164 Hangul Filler.
- 2
Set How many copies to the number of characters you want, from 1 to 5,000.
- 3
Press Copy on the Invisible text panel. The panel looks empty because the text in it cannot be seen.
- 4
Paste it where you need it, save, and check that the site kept it.
- 5
To inspect text instead, paste it into Text to check for invisible characters (optional) and read the revealed version and the table of what was found.