
Narrow non-breaking space. Used in German and French typography.
space-variantcontext-dependentA narrow non-breaking space: the same behaviour as an ordinary non-breaking space, drawn thinner. French typography requires it before certain punctuation, and German uses it inside abbreviations and between a number and its unit.
From properly set typography — and, more often noticed lately, from text produced by language models, where it turns up around units and punctuation. That has made it one of the characters people go looking for.
Often. A non-breaking space between a number and its unit is correct typography in German, French and English alike, and keeping a value and its unit on one line is the whole point of it.
That is why TraceFree PRO replaces these characters with an ordinary space rather than deleting them. Deleting merges words: a price would lose the gap between the number and the currency symbol. Replacing keeps the text readable and makes the spacing predictable.
| Preset | Action |
|---|---|
conservative | asked about |
default | replaced |
report-only | asked about |
strict | replaced |
Context guards can only ever make a cleanup gentler, never sharper. A rule saying “always remove” does not override them.
In TraceFree PRO, turn on the clipboard watcher and copy the text. On the command line:
tracefree clean --backup document.txt
pbpaste | tracefree clean | pbcopyReport without changing anything — exit code 1 on findings, so it works in CI:
tracefree check -r ./docsThis page never prints the character itself, only ways of writing it. A page about invisible characters that contained invisible characters would be unreviewable — and that is the problem the program exists to solve.
| Notation | Value |
|---|---|
| Unicode | U+202F |
| Rust | \u{202F} |
| JavaScript, Python | \u202F |
| HTML |     |
| Regex (PCRE, Rust) | \x{202F} |
Paste anything into the browser demo and see what is in it. Same engine as the app, running entirely on your device — nothing is uploaded.

