This page finds typographic ligatures (U+FB00–U+FB06: ff fi fl ffi ffl ſt) and unfolds them into plain letters via the "ligatures & fullwidth" rule. The sample below came out of a PDF. Everything runs in your browser — nothing is uploaded.
Single Unicode characters that fuse letter pairs a typesetter would join: fi (U+FB01) for f+i, fl (U+FB02) for f+l, ffi (U+FB03) for f+f+i, and friends. In a rendered document they're pure typography. In extracted text, "finance" is a five-character string that will never match "finance".
Copying or extracting text from PDFs is the overwhelming source — the PDF stores the ligature glyph the typesetter used, and naive extraction hands it to you as-is. LaTeX output, InDesign exports and some ebook formats do the same.
Search, first and foremost: Ctrl+F, grep, database LIKE, and log search all miss words containing them. Résumé parsers and ATS systems are a notorious casualty — a PDF CV full of "office" and "certified" fails keyword matching invisibly. Spellcheckers flag correct words; deduplication and string equality fail; and code copied from a typeset document won't compile.
Paste the text above. Ligatures are flagged as "other non-ASCII" in the x-ray, and the "Unfold ligatures & fullwidth chars" rule (NFKC normalization) expands each one to its plain letters — fi→fi, ffi→ffi — so search and matching work again. In your own pipeline: unicodedata.normalize("NFKC", text) in Python or text.normalize("NFKC") in JavaScript does the same.
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 · Код не запускается