U+202C
POP DIRECTIONAL FORMATTING

Ends a bidi embedding or override.

Codepoint
U+202C
Short
PDF
Group
bidi-control
Class
invisible
Default
removed
Replaced by
removed, no substitute

What it is

Bidirectional controls tell the text renderer which direction a run of characters should be laid out in. They are invisible and they change nothing about the stored text — only about how it is drawn.

Where it comes from

Legitimately from any document that mixes a right-to-left script such as Arabic or Hebrew with Latin text; the controls resolve ambiguities the automatic algorithm cannot.

Illegitimately from an attack known as Trojan Source, published in 2021: the overrides in this group can make source code display in an order different from the order a compiler reads it in. A comment can be made to look like executable code, or the reverse, with nothing visibly wrong.

When it belongs

Whenever the document genuinely contains right-to-left content. TraceFree checks for that before touching anything here, and holds back when it finds it.

In a document with no right-to-left text at all, a bidi control has nothing to do, and its presence is worth a second look.

What TraceFree does with it

PresetAction
conservativeasked about
defaultremoved
report-onlyasked about
strictremoved

Context guards can only ever make a cleanup gentler, never sharper. A rule saying “always remove” does not override them.

How to remove it

In TraceFree, turn on the clipboard watcher and copy the text — the finding appears with a before-and-after comparison of the affected lines. For files, a watched folder does the same, keeping a backup copy alongside.

How to write it

This 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.

NotationValue
UnicodeU+202C
Rust\u{202C}
JavaScript, Python\u202C
HTML‬ ‬
Regex (PCRE, Rust)\x{202C}

Related characters