U+202E
RIGHT-TO-LEFT OVERRIDE

Bidi override. Displayed order can differ from stored order.

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

What it is

The right-to-left override forces everything after it to be displayed in reverse order, regardless of what the characters themselves are. It is the sharpest of the bidirectional controls, because it overrides rather than hints.

Where it comes from

It is the character at the centre of Trojan Source, the 2021 finding that source code can be made to display in one order and compile in another. It also has a long history in filenames, where it can make an executable appear to end in a harmless extension.

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+202E
Rust\u{202E}
JavaScript, Python\u202E
HTML‮ ‮
Regex (PCRE, Rust)\x{202E}

Related characters