Skip to content
Ghostchars

Bidirectional marks

LEFT-TO-RIGHT MARK (U+200E)

An invisible, zero-width character with strong left-to-right direction. It resolves ambiguity in mixed text without reordering anything itself.

Codepoint
U+200E
Also written as
u200e\u200e‎
Removed by default
When free-floating
Governing option
Bidi marks --bidi
Can be load-bearing
Yes

Copy and paste U+200E

To copy and paste LEFT-TO-RIGHT MARK (U+200E), press the button: the character itself goes to your clipboard, and Ctrl+V (Cmd+V on a Mac) pastes it anywhere you can type.

Where it comes from

Bidirectional documents, where it fixes a punctuation mark that would otherwise jump to the wrong end of a sentence. Also from CMSes and translation tools that add it defensively, and from bidi-mark steganography, which encodes bits as U+200E and U+200F.

Why it matters

Next to Hebrew or Arabic it is doing real work and removing it visibly breaks the layout. In an English-only paragraph it is invisible padding, and a pair of invisible characters with two states is a one-bit-per-position channel.

Before and after

LEFT-TO-RIGHT MARK (U+200E) before and after cleaning, with the hidden character shown as a labelled chip
Reference card for this character: the codepoint, the verdict, and the same before and after in one image.
BeforehelloU+200E world
Afterhello world

No right-to-left text anywhere near it, so the mark has no ambiguity to resolve and is removed.

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

Immediately before or after right-to-left text. Ghostchars checks the neighbours for a right-to-left, Arabic-letter or Arabic-number character and keeps the mark when it finds one.

How to remove it

A mark with no right-to-left neighbour is removed by the default pass. One next to right-to-left text is kept and reported; `--bidi` removes those too, and will change how mixed Hebrew or Arabic renders.

Working in a file rather than a paste? The document report for .docx, .odt and .html finds it inside the file, together with hidden runs and tracked changes, without you having to open it. If the question is what the rest of the writing does rather than what this one character does, count the tell words and phrases per thousand words and see where each habit sits, with no score and no claim about who wrote the text.

Is it an AI watermark?

Used to hide data, but is not a watermark

No. LRM/RLM binary is a published steganography scheme, and the mark is also ordinary bidi punctuation. Context decides which you are looking at; authorship never enters into it.

A known carrier for deliberately hidden payloads. Someone put it there on purpose, which is a different question from who wrote the words.

Questions

Will cleaning break my Hebrew or Arabic layout?

Not by default. A mark adjacent to right-to-left text is kept and reported as load-bearing. `--bidi` is the option that removes it anyway, and it says what it breaks.

How is it used to hide data?

By placing a LRM for a 0 and a RLM for a 1 after each word. Both are invisible in a left-to-right paragraph, so the text looks untouched.

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 textClean it in Chrome as you pasteClean it on your Mac with one keystrokeAll characters

Anonymous usage stats?

Ghostchars processes your text in the browser and never uploads it. We would like to count page views with a self-hosted, cookie-light analytics endpoint. No content, ever.