An invisible character is a real character that happens to draw nothing. It takes up a position in your text, and in some cases some width, but you can’t see it. They’re handy for blank names and messages, for spacing and formatting tricks, and, less happily, they’re a classic cause of “why won’t this work” bugs. This page gives you the most useful ones to copy, with their Unicode code points so you know exactly what you’re pasting.
How to use the list
Pick the character you want and press Copy. Because it’s invisible, the box shows a short placeholder telling you how many characters it contains rather than an empty gap. Use the How many copies setting to repeat each character, for example to build a wider blank gap.
Then paste it where you need it. If the app displays a blank space or accepts the text as a non-empty value, it worked.
The characters
Hangul Filler (U+3164) is a letter from the Korean writing system whose job is to fill a blank position. Because it’s classed as a letter rather than whitespace, many apps don’t trim it, which makes it the most popular choice for a “blank” username, caption or message. It’s also fairly wide on screen.
Braille Pattern Blank (U+2800) is the Braille cell with no dots raised. Like the Hangul Filler, it’s a symbol rather than a space, so it often survives where spaces are stripped. It usually appears a little narrower and can look slightly different between fonts.
Zero Width Space (U+200B) has no width at all. It tells a layout engine that a line may break here. Many apps strip it or treat a message made only of zero-width spaces as empty.
Zero Width Non-Joiner (U+200C) and Zero Width Joiner (U+200D) control how neighbouring characters connect. The joiner glues emoji together into sequences such as a family or a profession, and both are essential in scripts like Persian and Hindi.
Word Joiner (U+2060) prevents a line break at its position, the opposite of the zero-width space.
Invisible Separator (U+2063) is a mathematical formatting character with no visual width.
Ideographic Space (U+3000), Em Space (U+2003) and Thin Space (U+2009) are real spaces of different widths: very wide, wide and narrow. They show as gaps and are good for visible spacing without stacking many normal spaces.
Non-Breaking Space (U+00A0) is an ordinary-width space that doesn’t allow a line to break at that point. It’s what keeps “10 km” together on one line, and it also survives many whitespace-trimming filters.
Common uses
- Blank usernames, bios or messages where an app refuses an empty field but accepts a character.
- Spacing and alignment in plain text where multiple ordinary spaces get collapsed.
- Stopping unwanted line breaks with a non-breaking space or word joiner.
- Allowing long strings to wrap with a zero-width space.
- Controlling emoji and complex scripts with joiners and non-joiners.
Be careful with them
Invisible characters have an honest, useful side and an annoying one.
They’re hard to debug. A zero-width space pasted into a password, a file name, a command or a spreadsheet cell can make something fail with no visible cause. If an email address “looks right” but is rejected, or a lookup fails to match two identical-looking words, hidden characters are a prime suspect. The find and replace tool in regex mode can search for them: try the pattern [-] and replace with nothing to strip the zero-width ones.
Apps treat them differently. A character that works on one platform may be stripped or blocked on another, and rules change over time. Always test in the place you intend to use it.
They can be misused. Blank names and messages are harmless when used for design or humour, but invisible characters are also used to impersonate people or to hide text. Don’t use them to mislead others, and note that many platforms prohibit that.
They hurt accessibility. Screen readers may announce nothing, or announce each invisible character by name. Don’t rely on them for meaning.
Related tools
If you’re working with hidden or odd characters, the text encoder and decoder can show text as hexadecimal, so you can see exactly what’s in a string. The fancy text generator and small text generator work with other special Unicode characters, and the word counter counts characters, though it can’t show you invisible ones. For repeating a character many times, the text repeater is quicker than this page’s copy count.
Finding and removing the ones you did not mean to paste
To see exactly what an unknown character is, paste it into the text to Unicode converter, which gives its code point and bytes. To clear them out, remove extra spaces handles non-breaking spaces and tabs, and remove special characters also deletes zero-width characters, which is why it sometimes fixes a problem nobody could see. The text diff checker is a good way to spot a hidden difference between two strings that look identical.