This page finds U+200E LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK and removes them. The sample below is a date copied from Windows file properties — it carries three LRMs. Everything runs in your browser — nothing is uploaded.
An invisible directional hint that tells text renderers "treat what follows as left-to-right". Its mirror is U+200F, the right-to-left mark. Both exist so mixed Latin/Hebrew/Arabic text renders in the right order — and both are invisible everywhere else.
Windows is the classic source: dates and file paths copied from Explorer's Properties dialog carry LRMs between the parts. WhatsApp inserts them around phone numbers and timestamps in exported chats, Wikipedia articles use them around foreign-script names, and Google Maps puts them in copied coordinates.
Anything that compares or parses the copied string: a date that won't strptime ("unconverted data remains"), a path that fails os.path.exists even though the file is right there, phone numbers that fail validation, spreadsheet lookups that miss. Interpreters reject it in code with errors like Python's SyntaxError: invalid non-printable character U+200E.
VS Code: regex-search [\u200e\u200f]. Command line: grep -rP '[\x{200E}\x{200F}]' . — or paste the text above: each mark is flagged (LRM/RLM) and the cleaned output drops them. Unlike the bidi overrides, lone LRM/RLMs in copied Latin text are harmless to remove.
Guides for the common cleanup jobs — what the source puts into your text, exactly what it breaks, and the tool preloaded with a demonstration:
AI-generated text · Text copied from Word / Google Docs · Text copied from a PDF · Pasted code that won’t run · CSV & spreadsheet data · Invisible watermarks · Many files at once (batch)
Dedicated pages for the usual suspects — what each one is, where it sneaks in from, the exact errors it causes, and how to find it in your editor:
Zero-width space (U+200B) · Non-breaking space (U+00A0) · Byte order mark (BOM) (U+FEFF) · Soft hyphen (U+00AD) · Smart quotes · Em dash (U+2014) · Narrow no-break space (U+202F) · Ideographic space (U+3000) · Zero-width joiner (U+200D) · Zero-width non-joiner (U+200C) · Word joiner (U+2060) · Right-to-left override (U+202E) · Left-to-right mark (U+200E) · Line separator (U+2028) · Variation selector-16 (U+FE0F) · Object replacement character (U+FFFC) · Hangul filler (U+3164) · Braille pattern blank (U+2800) · Ligatures · Minus sign (U+2212)
Страницы на русском — те же инструменты с переведёнными правилами и примерами под задачу:
Невидимые символы в тексте · Убрать невидимые символы · Почистить текст нейросети · Неразрывные пробелы в числах · Текст из Word · Код не запускается