Ready, runs in your browser
0 chars · 0 words
invisible characters handled
14
steps start to finish
3
run limit
None

The job

What the zero-width space remover does

Something you pasted from ChatGPT is not behaving: a search will not match it, a slug looks wrong, a CSV row refuses to join. The usual culprit is a zero-width space, U+200B, sitting invisibly inside the string. This app strips it, along with the thirteen other invisible characters it knows, and leaves every visible character alone.

It all happens in your browser. Nothing is uploaded, no account is needed, and there is no run limit or length cap because there is no server in the loop.

The workflow

How to remove zero-width spaces in three steps

Under five seconds once the text is in front of you.

Step 1
Paste the text straight out of the chat window. Do not retype it first, because retyping removes the characters and the run will look like it found nothing.
Step 2
Run the removal. The result comes back with a count of how many characters were removed or changed.
Step 3
Copy it out. Wording, capitalisation, line breaks and Markdown are all exactly as they were.

The checklist

The 14 invisible characters it handles

Eleven are deleted. Three are space look-alikes and become a plain space, because the gap is real even when the codepoint is wrong.

U+200B zero-width space
The one this page is named for. Takes a slot, renders nothing.
U+200C zero-width non-joiner
Stops two letters joining. Genuine typography in Persian and several Indic scripts.
U+200D zero-width joiner
Fuses characters into one glyph. Left in place inside a real emoji sequence.
U+2060 word joiner
Blocks a line break between two characters, usually next to a dash.
U+FEFF byte-order mark
Fine at the head of a file, a parser hazard anywhere else.
U+00AD soft hyphen
Invisible until the line wraps on it, then a hyphen appears mid-word.
U+00A0, U+202F, U+200A
No-break space, narrow no-break space, hair space. All three become a normal space.
U+202A to U+202E
Two directional embeddings, a pop, and two overrides that reverse how the following text displays.

Alternatives

Other ways to strip a zero-width space

Worth knowing, because each one fails differently.

Plain-text editor
Paste into Notepad or TextEdit in plain-text mode and copy back. Quick, catches a lot of browser-copy residue, and destroys your formatting on the way through.
Find and replace
Word, Docs and code editors accept Unicode escapes in the search box. One pass per codepoint, and you need the list first.
A script
Python or JavaScript with a character class. Repeatable, and more setup than a single paragraph deserves.
This app
All fourteen in one pass, with a count of what changed and no formatting loss.

What it will not touch

What the zero-width space remover leaves alone

The boundary matters, because competing tools fold several jobs into one claim.

U+2009 thin space
Named by other pages, not in this set. This one covers U+200A hair space and U+202F narrow no-break space.
Variation selectors and isolates
U+FE00 to U+FE0F and U+2066 to U+2069, plus U+180E and the invisible math operators. All outside the set.
Em dashes and smart quotes
Visible punctuation. Untouched here. Separate routes on this site handle dashes and quote straightening.
Extra spaces and blank lines
Spacing is preserved exactly as pasted. The general text cleaner is the one that normalises whitespace.
Your wording
Nothing is rewritten or reordered. Only the fourteen listed characters change.

Why it matters

What a zero-width space actually breaks

A U+200B inside a heading or a slug splits the string for anything comparing text character by character, so two values that look identical refuse to match. On-site search misses the page. A find-and-replace returns nothing on a phrase you can see. A deduplication pass keeps both copies of the same row.

Pasted into code, one inside an identifier or a string literal is a syntax error the editor gives no sign of. In a CMS, a byte-order mark shows up as a stray glyph in a feed.

There is a security angle as well. The directional overrides in the list above change how text displays without changing what it is, so a link or filename can read differently from what it resolves to, and invisible characters can carry instructions a model reads and a person does not.

Confirming it worked

How to check the zero-width spaces are gone

The run tells you how many characters were removed or changed, which is the direct answer. For an independent check, paste the before and after text into any character counter: the count should fall by exactly the number deleted, and the word count should stay put unless a zero-width space was standing in for a real space.

Running it a second time is the other check. A clean pass reports nothing, because there is nothing left in the fourteen to find.

FAQ

Everything answered. Zero-width space remover, frequently asked

How do I remove zero-width spaces from ChatGPT text?

Paste it, run the removal, copy the result. Three steps, all in your browser.

What is U+200B?

The zero-width space. It takes a position in the text and renders nothing at all.

Does ChatGPT add them on purpose?

There is no confirmed watermarking scheme. They are rendering residue, and word processors and PDF exports leave the same characters.

How many characters does it handle?

Fourteen. Eleven deleted, three space look-alikes converted to a normal space, all listed on this page.

Does it cover the thin space U+2009?

No. That one is outside the set. It handles the hair space U+200A and the narrow no-break space U+202F.

Is my text uploaded?

No. The whole thing runs locally, so no request is sent and nothing is stored.

Is it free?

Yes. No account, no run limit, no length cap, because nothing is metered on a server.

Will it lower my AI detection score?

No, and no tool can promise that. Detectors score word choice and sentence rhythm, which this never touches.

Does finding one prove the text is AI-written?

No. It shows the text went through something that inserts them, which includes chat windows, PDFs and editors alike.

What is the fastest manual method?

Paste into a plain-text editor and copy back out. It clears a lot of browser-copy residue and flattens your formatting at the same time.

Does it remove em dashes?

No. Em dashes are visible punctuation and stay put. The em dash remover on this site is the one for that.

Does it collapse double spaces or blank lines?

No. Spacing comes back exactly as pasted. Use the general text cleaner if you want whitespace normalised.

Will the word count change?

Character count can drop. Word count only moves if a zero-width space was doing the job of a real space.

Are emoji safe?

Yes. A joiner holding a multi-part emoji together is recognised and kept.

Is it safe on Arabic, Persian or Hindi?

Letters are never altered. The zero-width non-joiner carries meaning in those scripts, so review its occurrences before a bulk clean.

Can I clean code with it?

Yes. Indentation and line breaks are preserved and only the listed characters are affected.

Does it work on mobile?

Yes, the same way in any modern mobile browser, with nothing to install.

Does it work on Claude or Gemini text?

Yes. It matches codepoints, not providers, so the source makes no difference.

How do I confirm it removed something?

The run reports how many characters changed, and you can compare character counts before and after in any counter.

Do zero-width spaces hurt SEO?

One in a title or slug splits a keyword, so what a crawler parses no longer matches what a reader sees.

Is there a batch mode or an API?

Not currently. One document at a time, in one browser tab.