No upload, 100% local, no account

Unicode text cleaner

Paste text, see exactly which hidden characters are present, and remove the ones you choose.

How Unicode text cleaner works

Unicode text cleaner finds and removes a fixed, named list of characters that are invisible or easy to miss in plain text: zero-width space/joiner/non-joiner and the word joiner, bidirectional control characters, the soft hyphen, non-breaking and other odd Unicode spaces, and (as an opt-in) curly quotes straightened to plain ASCII. Paste text, see exactly which of these were found and how many, choose what to remove, and copy the cleaned result. Nothing you paste is sent anywhere.

This is a detector and remover for a SPECIFIC, documented set of characters, not a general-purpose text scanner and not an AI-generated-text detector: it reports the signals it actually finds (a count per category), and a clean result only means those particular characters are absent from this text, nothing more and nothing about who or what produced it.

How to use Unicode text cleaner, step by step

  1. Paste the text you want to check into the input box.
  2. Review the counts shown next to each character category (zero-width, bidi control, soft hyphen, unusual spaces, curly quotes).
  3. Toggle which categories to remove, and optionally enable "collapse repeated spaces and blank lines".
  4. Copy the cleaned text from the output box.

Common use cases

  • Cleaning text copied from a PDF or web page that carries invisible soft hyphens or odd spacing before pasting it into a document.
  • Checking a pasted job application or article for hidden zero-width characters sometimes used to defeat plagiarism checkers or word counts.
  • Normalizing curly quotes to straight quotes before pasting text into code or a system that expects plain ASCII punctuation.
  • Removing bidirectional control characters left over from copy-pasting mixed left-to-right/right-to-left text.

Frequently asked questions

Is this an AI-generated text detector?

No. It detects a fixed, named list of invisible/lookalike Unicode characters (zero-width characters, bidi controls, the soft hyphen, unusual spaces, curly quotes), nothing about writing style, and a clean result does not prove a text is human-written or AI-written. Treat it purely as what it is: a character-level cleanup tool.

Is my text sent to a server to be analyzed?

No. Detection and cleanup run entirely in your browser using regular JavaScript pattern matching on the text you typed or pasted. Nothing is transmitted anywhere, and the page keeps working offline once loaded.

What exactly are "zero-width characters"?

Characters that take up no visible space: zero-width space (U+200B), zero-width non-joiner and joiner (U+200C/U+200D), the word joiner (U+2060), an inline zero-width no-break space/BOM (U+FEFF), and the Mongolian vowel separator (U+180E). They are invisible in normal rendering but count as real characters.

What are bidirectional (bidi) control characters?

Invisible characters that change text direction for mixed left-to-right/right-to-left content: the left-to-right and right-to-left marks, the embedding/override pair, and the directional isolate set. Left over from copy-pasting, they can cause odd rendering or reordering later.

Why is straightening curly quotes optional, not on by default?

Curly ("smart") quotes are legitimate, intentional typography in most prose, so removing them is a stylistic choice, not a cleanup of something broken; it is opt-in so the default behavior only touches characters that are genuinely invisible or problematic.

Does this tool remove ALL invisible characters that could ever exist in Unicode?

No. It targets this specific, documented list: zero-width characters, bidi controls, the soft hyphen, unusual spaces, and curly quotes. It does not claim to catch every possible hidden character category in the Unicode standard.