Skip to content
Ghostchars

Bidirectional overrides

POP DIRECTIONAL FORMATTING (U+202C)

Closes the most recent embedding or override. On its own it does nothing; paired, it ends a directional run.

Codepoint
U+202C
Removed by default
Yes
Governing option
No option needed
Can be load-bearing
No

Where it comes from

Always in the company of U+202A–U+202E — the same legacy bidi workflows. Stray, unmatched pops are common in text that has been cut and re-joined.

Why it matters

A pop without an opener is invisible noise, and an opener without a pop leaks its direction to the end of the paragraph. Cleaning removes both sides of the pair, which is what returns the text to the plain bidi algorithm.

Before and after

Before‫mixedU+202C text
Aftermixed text

The pair vanishes together, leaving the words alone.

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

Only as the closing half of an embedding or override that should not be there.

How to remove it

The default pass removes it, along with the opener. Removing only one half would be worse than removing neither.

Is it an AI watermark?

Not a watermark

No. Legacy bidi formatting. No provenance signal of any kind.

No connection to machine-generated text. It comes from software, from a keyboard, or from a person.

Questions

Is an unmatched pop harmful?

Not by itself, but it is a reliable sign that text has been cut out of a larger bidi-formatted block, and the opener may still be somewhere upstream.

What closes an isolate?

U+2069 POP DIRECTIONAL ISOLATE, which is a different character with a different rule — Ghostchars treats it as a bidi mark, not as an override.

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