TextToolboxTextToolbox
Glossary

Invisible Character

An invisible character takes up space or has an effect without drawing a visible mark. Zero-width controls, spaces and blank symbols each work differently.

Text you cannot see that is still there

Not everything in a piece of text can be seen. A zero width space or a blank-looking filler can sit inside a word or a username and show nothing, which is why people use them for spacing tricks and blank names, and why they cause surprises such as two usernames that look identical or a stray character that breaks a search.

"Invisible character" is an everyday name, not an official Unicode category. Some of these characters control how text breaks or joins, some are spaces of a certain width, and some are blank-looking symbols. A string that looks empty can still contain data.

The TextToolbox Invisible Character Generator offers eleven of them: six format controls, four kinds of space and the Braille Pattern Blank. Other blank-looking characters, such as Hangul Filler (U+3164), are not in that list.

Breaking, joining and blank symbols

Zero Width Space (U+200B) marks a place where a line may break. Word Joiner (U+2060) does the opposite and stops a break on either side of it. The app decides where the line actually wraps.

Zero Width Joiner and Zero Width Non-Joiner change whether neighbouring letters join in some scripts and emoji sequences. Braille Pattern Blank (U+2800) has no raised dots, but it is a symbol, not a space.

U+FEFF is best known as a byte order mark at the start of a file. For no-break text, use Word Joiner instead. U+2063 Invisible Separator is a mathematical control with a different job.

A code-point view shows these characters, while a plain preview can hide the difference between two strings that look the same. Keep your original text, because deleting by code point cannot tell a character you inserted from an identical one that was already there.

Code points instead of blanks

  • The comparison table uses visible labels with code points, because the real characters would look blank.
  • Source AB with a Zero Width Space between the letters becomes U+0041 U+200B U+0042. Source "A B" with a zero width space after the space becomes U+0041 U+0020 U+200B U+0042.
Distinct roles of five characters; labels represent code points
CharacterVisible labelRole and limitation
Zero Width Space
U+200B
Potential line-break opportunity without a normal space.
Word Joiner
U+2060
Inhibits line breaks around it; not an ordinary space.
Non-Breaking Space
U+00A0
Width-bearing space with no-break behavior.
Zero Width Joiner
U+200D
Participates in shaping and some emoji sequences.
Braille Pattern Blank
U+2800
No raised dots; a Braille symbol, not whitespace.

Testing, detecting and the limits

  • Testing where a line can break and where it cannot.
  • Checking how joining characters change the shape of a word in a given font.
  • Finding hidden characters when copied text behaves strangely in search, comparison or a text field.
  • Spacing experiments in a draft. The generator inserts characters, but it cannot promise that a blank name or message will be accepted.

Sources and Further Reading

Try These Free Tools

Try the related browser-based tools for Invisible Character.

Related Terms