Guide

Word Joiner vs Zero Width Space: What’s the Difference?

WORD JOINER and ZERO WIDTH SPACE are both normally invisible Unicode characters with no visible width.

What makes them confusing is that their line-breaking jobs are almost opposite.

U+200B ZERO WIDTH SPACE, or ZWSP, can create a place where text is allowed to break. U+2060 WORD JOINER, or WJ, normally prevents a line break at its position under Unicode line-breaking rules.

Word Joiner and Zero Width Space at a Glance

Code pointNameShort nameVisible widthTypical line-breaking role
U+200BZERO WIDTH SPACEZWSPNormally noneProvides a possible break opportunity
U+2060WORD JOINERWJNoneNormally prevents a break at that position

Both belong to the broader family of invisible and special space characters, but looking equally invisible doesn’t mean they behave the same way.

What Is Zero Width Space?

U+200B ZERO WIDTH SPACE provides an invisible word or line-break opportunity.

It doesn’t normally create a visible blank area. Instead, it gives text another place where wrapping may be allowed if needed.

For a closer look at U+200B itself, see Zero Width Space U+200B: What It Is, Why It’s Invisible, and How to Find It.

What Is Word Joiner?

U+2060 WORD JOINER is a zero-width formatting character used to keep surrounding text together for line-breaking purposes.

It doesn’t add visible spacing.

That makes WJ useful when you want two parts of a sequence to stay on the same line without inserting a visible space between them.

ZWSP vs WJ: Break Here vs Keep Together

The easiest way to remember the distinction is:

ZWSP: a break may happen here.

WJ: keep this position from becoming a normal break point.

ZWSP doesn’t force a new line. It simply provides a possible break opportunity.

WJ, meanwhile, is normally used to stop a line break at its position. Its job is line breaking—not visually joining glyphs into one shape.

So if your goal is to allow an invisible break point, ZWSP is relevant. If your goal is to prevent a break without adding visible width, WJ is the character designed for that job.

Word Joiner Is Not Zero Width Joiner

The names are annoyingly similar, but these are different characters.

U+2060 WORD JOINER is mainly about line breaking.

U+200D ZERO WIDTH JOINER, or ZWJ, is associated with joining and combined presentation in applicable shaping contexts and in emoji ZWJ sequences.

Code pointNameMain concern
U+2060WORD JOINERLine breaking
U+200DZERO WIDTH JOINERJoining or combined presentation where applicable

In other words, “joiner” doesn’t mean the same thing in these two names.

Word Joiner vs Non-Breaking Space

WJ also has something in common with U+00A0 NO-BREAK SPACE, or NBSP: both can keep text from breaking at a particular position.

The big difference is width.

CharacterCode pointAdds visible spacing?Typical break behavior
NO-BREAK SPACEU+00A0YesNormally keeps surrounding text together
WORD JOINERU+2060NoNormally keeps surrounding text together

If you need an actual visible space that shouldn’t become a normal line-break point, NBSP is usually the more relevant character. The difference between ordinary and non-breaking spaces is explained in Non-Breaking Space vs Regular Space.

When Is Word Joiner Useful?

WJ is useful when a sequence should stay together but you don’t want to add any visible spacing.

The exact use depends on the language, notation, typography, and software involved.

For example, a sequence may look correct with no gap at all, yet generic line-breaking rules might allow it to split at a position where the author doesn’t want a break.

Adding NBSP would change the visible spacing. WJ can influence the break behavior without changing how wide the text looks.

Why Not Use U+FEFF?

Historically, U+FEFF ZERO WIDTH NO-BREAK SPACE was also used for zero-width no-break behavior.

But U+FEFF has another important role: it can act as a byte order mark, or BOM, at the beginning of text in contexts where that role is defined.

For new text that needs zero-width no-break behavior, Unicode prefers U+2060 WORD JOINER. That avoids mixing the line-breaking function with U+FEFF’s BOM history.

You can read more about that distinction in U+FEFF: Byte Order Mark or Zero Width No-Break Space?.

Can Word Joiner Show Up in Copied Text?

Yes.

WJ is part of the encoded text. If the source contains U+2060 and the copy operation preserves it, the character can still be there after pasting even though you can’t see it.

One clue is text that refuses to wrap at a position where there doesn’t appear to be any special character.

How Can You Find Word Joiner?

You usually won’t spot WJ by looking at the screen.

Instead, inspect the code points and look for:

U+2060 WORD JOINER

An editor that reveals formatting characters or a Unicode-aware code-point inspector is much more reliable than trying to guess from appearance alone.

Should You Remove Word Joiner?

Not automatically.

If U+2060 is intentionally keeping a sequence together, deleting it changes the wrapping behavior.

If it arrived accidentally in a data field where line breaking has no meaning, it may be unnecessary.

A simple workflow is:

  1. confirm that the character is U+2060;
  2. check whether the surrounding text is meant to stay together;
  3. remove it only if that behavior isn’t needed.

Why Are WJ and ZWSP So Easy to Confuse?

Because visually they give you almost no clues.

Both normally occupy zero width. Neither needs to display a visible glyph.

The difference becomes obvious only when you look at what they do to line breaking.

ZWSP introduces a possible break point. WJ normally prevents one.

The Main Difference

U+200B ZERO WIDTH SPACE and U+2060 WORD JOINER may look equally invisible, but they send very different signals to the line-breaking process.

ZWSP says, in effect, “a break may be allowed here.”

WJ says, in effect, “keep this position together.”

If hidden text is changing where a line wraps, checking whether the character is U+200B or U+2060 can quickly explain what’s happening.

2 thoughts on “Word Joiner vs Zero Width Space: What’s the Difference?”

Leave a Comment