Skip to content
Ghostchars

Exotic spaces

NARROW NO-BREAK SPACE (U+202F)

A thinner no-break space, about half the width of a normal one, used where a full space would look too wide.

Codepoint
U+202F
Removed by default
No
Governing option
Spaces -s
Can be load-bearing
No

Where it comes from

French typography (the modern recommendation before `;` `:` `?` `!` and inside large numbers), Mongolian, and — the reason people search for it — some ChatGPT output, where it appears in front of French punctuation and occasionally in English.

Why it matters

It is the character behind most "is this text AI-generated?" posts, and the answer is more boring than the question. It is also a real invisible difference: it breaks search and tokenisation exactly like U+00A0.

Before and after

BeforeBonjourU+202F: ça vaU+202F?
AfterBonjour : ça va ?

Correct French punctuation spacing. The narrow space is the typographically right character here.

The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.

When it is legitimate

French and Swiss typography, number grouping (1 000 000), and Mongolian. All standard, all correct.

How to remove it

Turn on Spaces (`-s`) and it is replaced with an ordinary space.

Is it an AI watermark?

Appears in some AI output — not a watermark

This is the honest answer people come here for: yes, U+202F does appear in some ChatGPT output, particularly around French punctuation — and it is ALSO standard French typography that predates every language model by decades. It is not a watermark, it is not deliberate, it is not detectable-by-design, and finding one tells you nothing reliable about authorship. Anyone selling it as proof of AI writing is selling you a coin flip.

It genuinely turns up in model output, as ordinary typography learned from the training data. It is not deliberate, not detectable by design, and not evidence about any single document.

Questions

Is a narrow no-break space proof that ChatGPT wrote this?

No. It appears in some model output and it is also what correct French typography, LaTeX, InDesign and many keyboards produce. A single character cannot establish authorship, and Ghostchars will never tell you it can.

Then why does it show up in model output at all?

Because the training data contains a great deal of correctly typeset French and technical writing. The model reproduces the typography it learned, the same way it reproduces em dashes.

Should I remove it?

Only if you need plain ASCII spacing — for a code field, a CSV, or a system that treats it as a strange character. In French prose it is correct and worth keeping.

Check your own text

Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.

Check your own textAll characters