Invisible character copy and paste

Copy a blank character, such as U+3164 or U+200B, in 1 to 500 copies, and test pasted text for hidden ones. Nothing leaves your browser.

How it works

  1. Pick a character from the list and how many copies
  2. Press Copy and paste it where you need a blank
  3. Or paste text into the test box to see what is hidden in it

What an invisible character is

An invisible character is a Unicode character that draws nothing, or only a blank gap, so you can copy one here and paste it where a normal space would be trimmed away or refused. Each one has a code point, written like U+3164, and an official name, such as HANGUL FILLER. Some are letters to Unicode (the Hangul fillers), some are symbols (the Braille blank U+2800), some are format characters with no width (the zero width space U+200B) and some are spaces of a particular width (the no-break space U+00A0). Pick one in the list, choose 1 to 500 copies and press Copy. The table under the result lists all 17 with their category, what they usually look like and a note.

Why a normal space does not do the same

Most forms and apps cut spaces off the ends of what you type, in JavaScript with a call named trim(), so a name made of spaces becomes empty and is refused. The table shows, for each character, whether trim() removes it, worked out live by this page. It removes the no-break space, the en, em, four-per-em and narrow no-break spaces, the ideographic space and U+FEFF. It does not remove the Hangul filler U+3164, the Braille blank U+2800, the zero width space U+200B or the invisible separator U+2063, which is the property people use. That is a fact about one function. What a particular app, game or website accepts is decided by that service, and its filters change, so a character that works today may be refused later. If one is refused, try another type.

Testing text for hidden characters

Paste text into the test box and the result lists each invisible character found, with its code point, its name, how many times it occurs and where, counted in characters from 1. The sample, Hello, a zero width space and world, looks like Helloworld but is 11 characters long; the test reports U+200B at position 6. Normal spaces, tabs and line breaks are not reported. Some hidden characters are normal: a zero width joiner builds many emoji, a variation selector chooses between a text and an emoji look, and a left-to-right mark is correct in mixed-direction text. The test reports them anyway and leaves it to you to decide. Up to 100,000 characters are tested. To find and remove hidden characters in a long text, use the invisible character detector.

Limits and fair use

A font that lacks a character may draw an empty box instead of a blank, and a few apps strip invisible characters when you paste, so a blank can vanish on the way. The characters have uses such as spacing in names, steady line breaks and layout. Do not use them to impersonate someone, to get around a moderation filter or to hide text from the people who are meant to read it. The copy is made in your browser, in this tab; no server receives the characters or the text you test.

Frequently asked questions

How do I copy and paste an invisible character?

Choose a character in the list, such as U+3164 Hangul Filler, set how many copies you want, and press Copy on its result box. Then paste where you need it. The box looks empty because the character has no shape; the code point above it says what is inside.

Which character do people use for a blank name?

The Hangul filler U+3164 and the Braille blank U+2800 are the ones most often tried, because neither is removed by trim(). Whether an app accepts either is up to that app, and apps change their filters, so try the other types in the list if one is refused.

Why is a blank made of spaces refused?

Many forms trim spaces off the start and end, so a name of ordinary spaces is empty after trimming. Characters that trim() does not remove, such as U+200B or U+3164, are not trimmed away by that step. The table shows Yes or No for each character.

What is the difference between U+200B and U+3164?

U+200B is a zero width space, a format character with no width. U+3164 is the Hangul filler, a letter in Unicode that usually draws as a wide blank. Both survive trim(), but they are different categories (Cf and Lo), which some systems treat differently.

How can I tell if text has a hidden character in it?

Paste it into the test box. Each hidden character is listed with its code point and position, so a word that looks like Helloworld with 11 characters shows U+200B at position 6. Normal spaces and line breaks are not listed.

Is the text I paste uploaded or saved?

No. The characters are made and the text is tested in your browser, in this tab, and no server receives either. Your choices, the character and the number of copies, are saved in this browser; the pasted text is not. Google Analytics counts visits and copy presses, never the text.