Skip to content
Ghostchars

Bidirectional overrides

LEFT-TO-RIGHT EMBEDDING (U+202A)

Opens a left-to-right run inside surrounding text, until a matching POP DIRECTIONAL FORMATTING closes it.

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

Where it comes from

Older software that formatted mixed-direction text before the isolate characters existed, and from copy-paste out of such software.

Why it matters

Embeddings nest and leak. An unterminated one applies to the rest of the paragraph, and because they are invisible, a stray embedding is one of the hardest formatting bugs to find by eye.

Before and after

BeforeU+202Aleft‬
Afterleft

An embedding and its pop, both invisible, wrapped around one word.

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

It was the right tool before Unicode 6.3. Since then the isolates (U+2066–U+2069) do the same job without letting the effect escape into neighbouring text, and Unicode recommends them instead.

How to remove it

The default pass removes it. Ghostchars removes all five of U+202A–U+202E without asking, because none of them can be verified as correct from the text alone.

Is it an AI watermark?

Not a watermark

No. A legacy formatting control. Finding one says the text passed through older bidi-aware software.

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

Questions

What should be used instead?

U+2066 LEFT-TO-RIGHT ISOLATE with U+2069 POP DIRECTIONAL ISOLATE. Isolates confine their effect to the span they wrap.

Why are unmatched embeddings a problem?

Because the effect runs to the end of the paragraph. Text pasted after it inherits a direction nobody intended.

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