U+202F · CHARACTER REFERENCE
Narrow No-Break Space
Copy U+202F (NNBSP), a narrow gap that normally keeps the text on either side together. Test its wrapping before using it in your document.
Copy Narrow No-Break Space
Ready. The single-character button copies only U+202F.
U+202F1 Unicode code pointThis field starts with one U+202F. The demo button copies the complete labelled example. Controls in the figures below never change what these copy buttons send.
See what changes when the line gets narrower.
U+0020 · normal word spaceU+2009 · narrow, can breakU+202F · narrow, no-breakU+202F creates a narrow gap with the no-break role of U+00A0. With normal wrapping, it keeps a short pair such as 10 kg together; the pair may move to the next line as a unit. That differs from making the entire sentence unbreakable.
At 3 ch, normal wrapping may let the pair overflow. The emergency setting applies overflow-wrap: anywhere, which permits otherwise forbidden breaks to prevent overflow. U+202F stays the same; see CSS overflow wrapping and the Unicode glue class.
When a narrow no-break gap is useful.
- A number and its unit
- Use a narrow gap in a short pair such as
10 kgwhen the document’s style calls for it and the pair should stay together. Paste the full demo, then check the destination at a narrow width. - Punctuation in edited text
- U+202F is used for narrow nonbreaking spacing in French text. Which marks need it depends on the locale and publication’s style; this copier does not automatically correct punctuation.
- A gap already present in pasted text
- If the width or shading surprises you, inspect the code point before replacing it. A visible gap could be U+0020, U+00A0, U+2009 or U+202F. Shading alone does not identify it.
NNBSP and “narrow non-breaking space” name the same U+202F character here. The Unicode character chart also lists “no-break thin space” as an alias; use the code point when the distinction matters.
Choose width and breaking behavior together.
| Character | Spacing / wrapping | Choose it for |
|---|---|---|
| Narrow No-Break Space · U+202F | Narrow gap; normally resists a break | A short pair needing both narrow spacing and no-break behavior. |
| Thin Space · U+2009 | Narrow gap; permits a break opportunity | Small typographic separation when wrapping may occur. |
| No-Break Space · U+00A0 | Ordinary-space-like gap; no-break | A normal-width gap keeping words together. |
| Word Joiner · U+2060 | No visible gap; suppresses a break | A break boundary that needs no added spacing. |
Width and line breaking are separate properties. Unicode specifies the same intended width as Thin Space, while their line-breaking behavior differs. Rendering depends on the font, so choose the required break behavior and review the destination.
Find what changed before replacing the gap.
- Check the saved text.
Paste in the destination, save or submit, then copy that saved text back. Use the character checker to look for
U+202F; checking only the source cannot show what an app changed. - Separate the symptom from the cause.
If U+202F remains but the gap looks different, inspect the destination font or layout. If it became U+0020, a conversion happened somewhere; the worked example below shows one possible mechanism, not proof of that app’s process.
- Preserve it unless replacement is intended.
For unwanted narrow no-break gaps, use an editor’s exact find/replace: find the actual U+202F and replace it with U+0020. Preview the matches and resulting line breaks first. Deleting the gap entirely joins the words or number and unit.
The checker names and flags U+202F; the whitespace normalizer’s NBSP conversion covers U+00A0; it does not specifically convert U+202F. The remover also has no U+202F-specific removal rule. Use exact editor replacement when this is the character you intend to change.
The same-looking gap can be a different character.
Input: "10\u202Fkg" → 5 code points
.trim() → "10\u202Fkg" (interior gap kept)
.normalize("NFC") → "10\u202Fkg" (same code points)
.normalize("NFKC") → "10 kg" (gap becomes U+0020)
Edge-only input: "\u202F"
.trim() → "" (0 code points)Unicode’s compatibility mapping explains the NFKC conversion; JavaScript trim() removes edge whitespace. These are different operations. An app can use either, both or neither.
The NFKC result looks similar, but its U+0020 permits normal word wrapping. Do not apply compatibility normalization just to “clean invisible characters” when preserving no-break spacing is the goal.
Write U+202F as a character or a code reference.
NARROW NO-BREAK SPACE · ZsU+202F · 8239  "\u202F""\202F"E2 80 AFGL (Glue)For a plain text field, copy the character itself. In HTML source, a numeric reference is parsed into the character. Pasting the visible letters   into an ordinary message may leave those letters visible.
A CSS content escape can render a gap in a pseudo-element; it is not a replacement for inserting U+202F into the stored text. Inspect the real value if copying or exact matching matters.
Narrow No-Break Space FAQ
Is NNBSP the same as Narrow No-Break Space?
Yes. On this page NNBSP means U+202F, Narrow No-Break Space. U+00A0 is the wider No-Break Space and U+2009 is Thin Space; they are different characters.
Is U+202F always narrower than U+2009?
Unicode specifies the same intended width as Thin Space U+2009. Actual rendering depends on the font, so inspect the destination. Their line-breaking roles differ: U+202F is no-break; U+2009 permits a break opportunity.
Can a narrow no-break space still wrap?
Normal line breaking respects its no-break role, but layout rules such as CSS overflow-wrap: anywhere can allow an emergency break. A no-break character does not make the entire surrounding sentence unbreakable.
Why did a field containing only U+202F become empty?
JavaScript trim() removes U+202F at string edges, including a string containing only that character. Other validation is possible; inspect the saved value before attributing the change to trim().
Should I remove a gray-highlighted space in an editor?
First identify it. Shading may be an editor’s display aid and does not prove a particular code point. Preserve intentional no-break spacing; replace only confirmed unwanted characters.
Does the whitespace normalizer convert narrow no-break spaces?
Its current NBSP conversion targets U+00A0, not U+202F. For U+202F, inspect the saved text and use exact find/replace in an editor when replacement is intended.
Sources for U+202F
Character properties checked against Unicode 18.0.0. Figures show this browser’s current rendering; your destination may use different fonts, layout and input rules.