All guidesGuide

Hidden and Zero-Width Characters, Explained

The characters that take up no space at all, and why they behave differently from the blank one this site uses.

Last updated

'Hidden characters' and 'zero-width' text refer to Unicode code points that render with no visible mark and, in the true zero-width case, no width at all. They're related to but different from the visible-width blank the invisible text generator produces.

This guide covers the main hidden characters, what they're for, and why they're heavily filtered.

The main hidden characters

Zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), and the word joiner (U+2060). They have legitimate typographic jobs — controlling where words can break, joining emoji sequences — but pasted into a name or message they're invisible and take no space.

Zero-width vs visible blank

A zero-width character has literally no width; a visible blank like Braille Pattern Blank (U+2800) has the width of a space but no mark. The visible blank survives copy-paste in more places because apps that strip 'nothing' characters don't classify it as one. See what invisible text is and blank text to copy and paste.

Why they're filtered

Zero-width characters can pad text to dodge length checks, hide watermarks in copied text, or split words to evade keyword filters. Because of that, platforms like Discord, and many chat and forum systems, actively detect and strip them. A name made only of zero-width characters is usually rejected outright.

When you'd actually want one

Rarely, for their real purpose: forcing or preventing a line break in a long string, or keeping an emoji sequence together. For blank-looking spacing in a bio or caption, the visible-width blank is the better tool because it isn't filtered as aggressively.

The zero-width family, character by character

Hidden characters are not one character, they are a small family with different jobs. Using the wrong one is why some blanks work in a name and others are stripped.

Hidden characters and what each one is actually for
CharacterCode pointReal purposeBlank-text behaviour
Zero-width spaceU+200BAllows a break without visible spaceThe usual choice for blanks
Zero-width non-joinerU+200CPrevents a cursive or Indic letter joinWorks, but some editors strip it
Zero-width joinerU+200DCombines emoji into one glyphRisky on its own, powerful in sequences
Word joinerU+2060Prevents a line breakBehaves like a zero-width space
Byte order markU+FEFFMarks text encodingOften removed on paste
Soft hyphenU+00ADSuggests a hyphenation pointInvisible until a line wraps

Finding and removing hidden characters you received

If a name or a list looks empty but behaves oddly, hidden characters are usually the cause. The quickest check is to place the cursor in the field and press the end key, then backspace. If the cursor traverses positions that show nothing, there are invisible characters in the string.

In a document, turn on paragraph marks and other formatting symbols. Most word processors visualise zero-width characters as small markers, which makes them easy to select and delete.

When you are pasting someone else's text into a system that validates input, strip the invisible characters first. Forms, filenames, and spreadsheet keys are all sensitive to a character nobody can see.

FAQ

Frequently asked questions

01What is a zero-width character?+

A Unicode character that renders with no mark and no width, such as the zero-width space (U+200B). It exists for typographic control but is often misused for hiding or padding text.

02Is zero-width text the same as invisible text here?+

No. This site's invisible text uses a character with real width, which survives copy-paste in more apps. Zero-width characters are stripped by many platforms.

03Can hidden characters be used to hide a message?+

They can encode small amounts of data between visible letters, but most modern platforms detect and remove them, so it's unreliable.

04Why did Discord remove my zero-width name?+

Discord specifically filters zero-width and whitespace-only names. Use a visible-width blank instead — see the blank Discord name guide.

05Which zero-width character should I use for a blank name?+

Start with the zero-width space at U+200B. It is the most widely accepted of the family and the least likely to be stripped by an editor. If a platform removes it, the word joiner at U+2060 is the usual second attempt, though most platforms filter invisible-only names regardless of which one you use.

06How do I clean hidden characters out of text I pasted?+

Retype the short string by hand, or paste it into a plain text editor that shows invisible characters and delete them from there. Word processors with formatting marks enabled make the characters visible so you can remove them without guessing where they are.