Choose by behavior

Blank Character Guide

Characters that look empty can behave very differently. Compare visible width, line breaking and Unicode classification before you copy one.

Start with the result you need.

These characters solve different text problems.

“Invisible,” “blank” and “whitespace” are useful everyday descriptions, but they are not interchangeable Unicode properties.

CharacterUnicode propertyWidth & breakingUse whenAction
Regular SpaceU+0020 · Space SeparatorWhite_Space: YesVisible gap; normal line-break opportunity.You need ordinary word spacing.Baseline
No-Break SpaceU+00A0 · Space SeparatorWhite_Space: YesUsually a visible gap; prevents a break between adjacent text.A short phrase or value must stay together.Use U+00A0
Zero Width SpaceU+200B · FormatWhite_Space: NoNo visible width; creates a break opportunity.You need an invisible word-break hint.Use U+200B
Braille Pattern BlankU+2800 · Other SymbolWhite_Space: NoBlank-looking Braille cell; width depends on the font.You want an alternate blank-looking character.Use U+2800
Hangul FillerU+3164 · Other LetterWhite_Space: NoOften blank-looking and width-bearing; display depends on the font.You want text that appears blank in a compatible field.Use U+3164
Classification does not predict every app.

A character can look blank without being Unicode whitespace. Fonts, input rules, trimming and validation can still change or reject it after pasting.

The code point matters even when the screen looks empty.

Boundary marks and counts make otherwise invisible differences easier to inspect.

Same letters, different middle

Each line contains A, one character and B.

A B
A B
A​B
A⠀B
AㅤB

No-break changes wrapping

A regular space can break; U+00A0 keeps the adjacent words together when line breaking is supported.

Order number AB 123456
Order number AB 123456

Empty-looking is not empty

empty0
U+00201
U+200B1

Copy, inspect or troubleshoot.

Properties are pinned to Unicode 18.0.0.

Names, general categories and White_Space values come from the Unicode Character Database dated August 7, 2026. Display and acceptance still depend on the target font and app.

Four questions settle almost every case.

Answer them in order. The first answer that matches your goal already names the character to try.

  1. Do you need a visible gap?

    If the answer is yes, the character must have width. Choose U+0020 for ordinary spacing, U+00A0 when the gap must resist a line break, or U+2003 Em Space when the gap should be wider than an ordinary space.

  2. Do you need the gap to stay invisible?

    Then the character must have no width. U+200B Zero Width Space gives a possible break without a visible mark, and U+2060 Word Joiner does the opposite: it blocks a break without adding width.

  3. Does the destination have to treat your text as ordinary letters or symbols?

    Then choose a blank-looking letter or symbol rather than a space: U+3164 Hangul Filler is a letter, and U+2800 Braille Pattern Blank is a symbol. Neither is Unicode whitespace, so trimming rules may treat them differently.

  4. How will you confirm the result?

    Copy, paste, save, reopen, and check the stored value with the checker. Every platform decides for itself whether to keep, normalize or reject a character.

Match the situation to the character.

A display name that should look empty

Start with a blank-looking, width-bearing character such as U+3164 or U+2800 rather than a space, because spaces are commonly trimmed. Then verify what the platform stored.

A separator inside a post or caption

Use U+200B when the separator must not add width, or a width-bearing blank when the layout needs an actual gap between blocks of text.

A short phrase that must not split across lines

Use U+00A0 between the words or around a number, for example between a quantity and its unit.

A long identifier that must be allowed to wrap

Use U+200B where the browser may break the string. Nothing visible changes, but the line can now wrap at that point.

Text that must compare as identical to a plain string

Use no extra character at all. Any blank-looking or zero-width code point makes two otherwise identical values different, which is exactly what breaks an exact match.

You inherited text and do not know what is inside

Do not guess from appearance. Check the code points first, then decide whether to keep, replace or remove them.

Blank character FAQ

What is the difference between “blank”, “invisible” and “whitespace”?

Whitespace is an official Unicode property. Blank and invisible are everyday descriptions of appearance. U+3164 and U+2800 look blank but are not whitespace, and U+200B has no visible width while also not being whitespace, so the words cannot be used interchangeably when you predict app behaviour.

Which blank character is the most reliable?

There is no single answer, because reliability means “what the destination keeps”. U+00A0 and U+0020 are supported almost everywhere as spacing; U+200B, U+2800 and U+3164 depend on font, input validation and normalization rules.

Why did the same character look different on my phone?

Fonts. A character with no glyph in the active font is rendered through font fallback, which can produce a box, a dot, different spacing or nothing at all. The code point is unchanged; only the rendering differs.

Can I repeat these characters to make a wider gap?

Yes for width-bearing characters such as U+00A0, U+2800 and U+3164. Repeating U+200B does not create width, because it has none; several in a row only add more break opportunities.

Do blank-looking characters count toward length limits?

Yes. Each one is a code point, so a counter includes it even when the screen shows nothing. That is why a value can look empty and still be rejected for being too long.

Where can I copy each of these characters?

Open the character directory for the full list with per-character copy actions, or use the main generator to produce an exact amount of one character.