tdy / blog / U+202F

U+202F: the space that is not a space

Updated July 2026 · 4 min read
Short answer

U+202F NARROW NO-BREAK SPACE renders as a slightly slimmer gap than a regular space, which means you will never spot it in a paragraph. To software it could not be more different: one byte (0x20) versus three (e2 80 af). It is correct typography in several languages and pure breakage in every string comparison.

on screen: 249 USD == 249 USD
in the bytes: 249[0x20]USD != 249[U+202F]USD

A legitimate character with a real job

French orthography calls for a narrow non-breaking space before tall punctuation, so a question mark never wraps to its own line. German number formats, Russian typography and scientific notation (a thin gap between a number and its unit) all use it too. Any text that passed through serious typesetting, such as academic publishing or a quality newspaper, is full of them on purpose.

That is exactly why AI models picked the character up. Their training data included mountains of professionally typeset text, and in 2025 users started finding U+202F scattered through model output where plain spaces belonged. That fueled a watermarking theory we examined in Does ChatGPT watermark its text? The mundane explanation held up: models reproduce the typography of their sources. The character made headlines again when one model variant emitted so many of them that macOS apps hit text-rendering glitches and developers filed it as a bug.

What it breaks

Everything that compares strings byte for byte:

Its cousin U+00A0, the ordinary non-breaking space, causes the same breakage and is far more common: every   on the web becomes one when you copy.

The right way to handle it

Blanket destruction is wrong. A French writer's punctuation spacing is not junk, and a cleaner that flattens it corrupts correct writing. The right policy is locale-aware normalization: replace space impostors with a plain space where they are noise, keep them where the language genuinely uses them.

If you just need to check one suspicious string right now, a hex dump settles it. U+202F shows up as e2 80 af, and there are three other ways to see it depending on where the text lives.

A space should be a space. When it is not, you deserve to know, and the clipboard is the right place to find out.

Text cleaning is coming next to tdy.

tdy is a Mac menu-bar app that already tidies every link you copy. Normalizing space impostors on copy, with the languages that need them left alone, is the next upgrade. One email when it ships, nothing else.

Join the launch list

Related