ÆON Toolhub

Prompt Cleaner

This free cleaner finds and removes the characters you cannot see in your text, from zero-width spaces to the Unicode tags used to smuggle hidden instructions into AI prompts. It lists exactly what it found and why each one matters, straightens curly quotes and dashes, and keeps your emoji intact.

Clean text
What was found
  • U+200BZero-width space×1Splits a word into two tokens without showing anything.
  • U+201C-DCurly double quote×4Breaks JSON, CSV and code that expect a plain quote.
  • U+2013-5En/em dash×2Looks like a hyphen but is a different character.
  • U+2026Ellipsis×1One character pretending to be three dots.
  • U+00A0 etcUnusual space×1Looks like a space but does not match one in code or search.

What is an invisible character?

An invisible character is a real code point in your text that renders as nothing. A zero-width space sits inside a word without widening it. A soft hyphen shows up only when a line happens to wrap. A byte-order mark leads a file and shows up nowhere.

They get in by accident, mostly. Copying from a PDF, a word processor, a web page or an AI response drags them along, and from then on they travel with the text. Your eyes see one thing; the machine reading it sees another. That gap is the whole problem: a prompt that looks right behaves oddly, a string comparison fails against text that appears identical, a JSON file will not parse, a search finds nothing.

Can text carry instructions I cannot see?

Yes, and it is a documented technique rather than a theory. The Unicode tag block, U+E0000 to U+E007F, mirrors ordinary ASCII: add 0xE0000 to a letter's code point and you get an invisible twin of it. String those together and you have written a full sentence that renders as absolutely nothing.

A language model still reads it. It processes characters, not pixels, so a message that shows you "Summarise this article" can carry a second instruction underneath that only the model sees. AWS published guidance on this under the name Unicode character smuggling, and its recommended defence is to filter those code points out of prompts. Security researchers also call it ASCII smuggling.

There is a button above that loads exactly such a text so you can see it for yourself: the visible part is short, the reveal view shows what is actually in there.

The same family of trick applies to code. Bidirectional override characters, U+202A to U+202E and U+2066 to U+2069, reorder how text is displayed without changing what it does, so a reviewer reads one thing and the compiler does another. That one is known as Trojan Source, and it is why this tool strips the whole range.

How do I see what is hidden before removing anything?

Use the reveal view. Nothing is removed there. Every invisible character is marked in place with its Unicode code point, so you can see how many there are and exactly where they sit.

That matters more than a total count. Knowing "twelve characters were removed" tells you nothing; seeing twelve U+E0041 markers clustered after a sentence tells you someone put them there. The clean view then gives an itemised audit: which character, how many, and why it matters.

Will cleaning break my emoji?

Not by default, and this is the part most tools get wrong in the other direction.

Some invisible characters are doing a legitimate job. The zero-width joiner is what fuses 👨 👩 👧 into the single family emoji 👨‍👩‍👧, and what holds 🏳️‍🌈 together. Strip every joiner blindly and those come apart into separate glyphs. Arabic and several Indic scripts use joiners for correct letterforms too.

So this tool keeps joiners that sit inside an emoji sequence and removes the stray ones floating in normal text. If you want a truly bare result, turn off "Keep emoji intact" and everything goes.

What else does it fix?

Three families of character that are visible but wrong for machines:

  • Curly quotes (" " ' ') become straight quotes. Word processors and phones insert them automatically, and they break JSON, CSV, shell commands and most code.
  • En and em dashes ( ) become hyphens, and a single-character ellipsis () becomes three dots.
  • Unusual spaces, including the non-breaking space, become ordinary spaces, because they look identical and never match in a comparison.

Each of these is a separate switch, so you can straighten quotes without touching dashes, or strip invisible characters while leaving typography alone.

What this tool does not do

It is worth being explicit, because several tools in this category imply more than they deliver.

  • It does not detect AI-generated writing. It removes characters that sometimes appear in AI output, but their absence proves nothing about authorship and their presence proves nothing either, since copying from a PDF produces the same artefacts. Be sceptical of anything claiming to detect AI writing.
  • It does not create hidden text. This is a defensive tool for cleaning text you received, not a way to hide anything in text you send.
  • It does not fix encoding damage. If a file was already saved with the wrong encoding and you are looking at é where é should be, that is mojibake, a different problem, and no amount of character stripping repairs it.
  • It does not change your wording. Nothing is rewritten, reordered or summarised. The visible text you paste is the visible text you get back.

Does anything leave my browser?

No. The cleaner runs entirely in JavaScript on your device. Nothing you paste is uploaded, logged or stored, and it clears when you close the tab. The page keeps working offline once it has loaded.

That is not a small detail for this tool in particular. The text you most want to check for hidden characters is usually a prompt you are about to send, a contract someone emailed you, or a snippet from a source you do not fully trust, which is exactly the material that should not pass through someone else's server on the way to being inspected.

Read the guide: What Are Invisible Characters?Read more →

Frequently asked questions

What are invisible characters?

Invisible characters are code points that take up no visible space but still exist in your text, like zero-width spaces, byte-order marks, soft hyphens and non-breaking spaces. They arrive when you copy from web pages, PDFs, word processors or AI output, and they break prompts, code, search and form validation without ever showing themselves.

Can someone hide instructions inside text I paste into an AI?

Yes, and it is a documented technique. The Unicode tag block, U+E0000 to U+E007F, can encode a whole sentence that renders as nothing on screen while a language model still reads it normally. AWS publishes guidance on the attack and recommends filtering exactly those code points, which is what this tool does.

How can invisible characters break an AI prompt?

A hidden character inside a word can split it into two tokens, change how the model reads an instruction, or make an exact-match rule fail silently. Because you cannot see the character, the prompt looks correct but behaves oddly. Removing them makes the prompt do exactly what the visible text says.

What is a bidirectional override character?

It is a control character that reorders how text is displayed without changing the underlying content, so what you read can differ from what a computer executes. In source code this is known as Trojan Source, and it is why this tool strips the whole U+202A to U+202E and U+2066 to U+2069 range.

Will it break my emoji?

No, not by default. Some invisible characters are legitimate: a zero-width joiner is what holds the family emoji together as one glyph, and removing it splits it into separate people. The tool keeps joiners that sit inside an emoji sequence and strips the stray ones, and you can turn that protection off.

How do I see what is hidden before removing it?

Switch to the reveal view. Nothing is removed there; every invisible character is marked in place with its Unicode code point, so you can see exactly where it sits in the text. It is the quickest way to prove a suspicious paste really does contain something you were not shown.

What does straightening quotes and dashes do?

Word processors and phones auto-replace straight quotes with curly ones and hyphens with long dashes. Those characters look nice but break code, JSON, CSV and command lines that expect plain quotes and hyphens. This tool converts them back to the simple versions so your text works where it needs to.

Where do these characters come from?

Mostly from copying. PDFs use them for layout, word processors insert them for typography, web pages use them to control line breaks, and some sites add them deliberately as a watermark. Most of the time nobody put them there on purpose; they are a side effect of text travelling between systems.

Does this tool detect AI-generated text?

No, and nothing reliably does. It removes hidden characters that sometimes appear in AI output, but their absence proves nothing about who wrote the text and their presence proves nothing either, since a PDF copy produces the same artefacts. Treat any tool claiming to detect AI writing with suspicion.

Is my text private?

Yes. The cleaner runs entirely in your browser with JavaScript. Nothing you paste is uploaded, logged, or stored, and it clears when you close the tab. You can safely clean private prompts, code, or confidential text, and the tool keeps working offline once the page has loaded.

Last updated: September 17, 2026