Guide

Narrow No-Break Space vs No-Break Space: What’s the Difference?

NO-BREAK SPACE and NARROW NO-BREAK SPACE have the same basic job in Unicode line breaking: they keep text from breaking at that position.

The main difference is width.

U+00A0 NO-BREAK SPACE (NBSP) is the regular-width non-breaking counterpart of an ordinary space. U+202F NARROW NO-BREAK SPACE (NNBSP) is a narrower version with the same basic no-break behavior.

NBSP and NNBSP at a Glance

Code pointNameShort nameWidthLine breaking
U+00A0NO-BREAK SPACENBSPRegular space-like widthNormally prevents a break
U+202FNARROW NO-BREAK SPACENNBSPNarrowerSame basic no-break behavior as NBSP

Both are part of Unicode’s invisible and special space characters. Unlike ZWSP or WORD JOINER, they have visible advance width even though what you see is simply blank space.

What Is NBSP?

U+00A0 NO-BREAK SPACE is the non-breaking counterpart of U+0020 SPACE.

It creates spacing between surrounding text, but Unicode’s default line-breaking rules normally keep a break from occurring at that position.

If you need the basic comparison first, see Non-Breaking Space vs Regular Space.

What Is NNBSP?

U+202F NARROW NO-BREAK SPACE does the same kind of line-breaking job but is intended to display more narrowly.

Unicode describes it as a narrow version of NBSP. That makes it useful when ordinary NBSP would create too much visual space but a line break still shouldn’t occur there.

Do NBSP and NNBSP Break Lines Differently?

Not in Unicode’s default line-breaking model.

Both belong to the GL (“glue”) line-break class, and UAX #14 says NNBSP has the same line-breaking behavior as NBSP.

The practical distinction is typographic:

NBSP gives you ordinary space-like separation.

NNBSP gives you narrower separation.

How Narrow Is NNBSP?

Unicode defines the character as narrow, but it doesn’t promise one fixed pixel width across every font.

The exact appearance depends on typography and font metrics, so NNBSP is better understood as a semantic request for a narrow non-breaking space than as a hard-coded measurement.

Where Is NNBSP Used?

Unicode specifically notes its use for the narrow non-breaking space found around punctuation in French typography, known as an espace fine insécable.

The exact punctuation and spacing conventions still depend on the language variety and editorial style. Unicode supplies the character; it doesn’t replace a style guide.

Why Not Just Use THIN SPACE?

U+2009 THIN SPACE is also narrow, but it doesn’t carry NNBSP’s non-breaking behavior.

Code pointNameNarrow?Non-breaking by default?
U+2009THIN SPACEYesNo
U+202FNARROW NO-BREAK SPACEYesYes

If a narrow space must stay attached across a line wrap, NNBSP carries that intention directly.

NNBSP vs WORD JOINER

Both normally prevent a break, but only one adds visible spacing.

CharacterWidthMain role
U+202F NNBSPNarrow visible spaceSeparates text while keeping it together
U+2060 WORD JOINERZero widthNormally prevents a break without adding spacing

If you need no visible gap at all, WORD JOINER solves a different problem. See Word Joiner vs Zero Width Space.

NNBSP vs ZWSP

These two have almost opposite line-breaking roles.

NNBSP creates a narrow visible space and normally keeps the text together. ZWSP has no visible width and provides a possible break opportunity.

CharacterVisible widthTypical break behavior
NNBSPNarrowNormally no break
ZWSPNoneProvides a possible break opportunity

What Changed for Mongolian?

Older Unicode documentation recommended U+202F NNBSP for a special role before separated suffixes in Mongolian text.

That changed in Unicode 16.0. Current Unicode assigns that role to U+180E MONGOLIAN VOWEL SEPARATOR (MVS), which also participates in the shaping behavior required for those suffixes.

NNBSP keeps backward-compatibility associations with Mongolian data, but new text shouldn’t rely on older guidance that treats U+202F as the preferred character for that special formatting role.

Why Can NNBSP Be Hard to Spot?

The width difference between NBSP and NNBSP can be subtle in some fonts, and copied text preserves the code point even when the blank looks ordinary.

That makes appearance a poor identification method. Inspect the Unicode value instead: U+00A0 is NBSP and U+202F is NNBSP.

The distinction can also matter in exact matching. A[U+00A0]B and A[U+202F]B are different encoded strings even if they look nearly the same. Applications can tailor search behavior, so don’t assume the two spaces are interchangeable just because both are non-breaking.

Should You Replace NNBSP?

Only when the destination no longer needs its original spacing behavior.

Replacing U+202F with NBSP usually keeps the broad no-break behavior but loses the narrower spacing. Replacing it with ordinary U+0020 SPACE changes more: you also reintroduce a normal break opportunity.

Either replacement can be reasonable in a controlled data-cleaning workflow and wrong in carefully typeset text. If you’re dealing with several special spaces or hidden controls at once, How to Find and Remove Invisible Unicode Characters Without Breaking Text gives a safer inspection-first workflow.

The Main Difference

NBSP and NNBSP share the same basic non-breaking behavior, but they aren’t the same character.

U+00A0 NBSP provides regular space-like separation. U+202F NNBSP provides narrower separation while keeping the same basic no-break intent.

That width distinction is the reason Unicode encodes both.

Leave a Comment