Free zero-width space remover

Invisible characters out, words untouched.

Free zero-width space remover. Strip U+200B and the 14 invisible characters this cleaner knows, in your browser, with nothing uploaded and no limit.

Paste your text to begin
0 chars / 0 words
invisible characters removed
14
bytes uploaded
0
usage limit
None

The tool

What the zero-width space remover does

Paste text, run it, and every invisible character this cleaner knows is taken out while every visible letter, space and line break stays where it was. A zero-width space, U+200B, is the one people search for, but it almost never travels alone, so this tool handles the whole set rather than that one codepoint.

It runs in your browser. Nothing is uploaded, there is no run limit and no length cap, because no server is involved in the work. Open your network panel and run it if you want to check that rather than take it on trust.

How it works

How to remove zero-width spaces in three steps

There is nothing to preview first, since the whole problem is invisible until the scan runs.

Step 1
Paste the text. Use the source you actually copied from, not a retyped version, or the characters will already be gone.
Step 2
Run the removal. It happens instantly, on your own machine.
Step 3
Copy the result. Every visible character is exactly as it was.

The full list

The 14 invisible characters this remover takes out

This is the exact set, grouped by what each one does. Eleven are deleted outright. Three are space look-alikes, and those are swapped for an ordinary space rather than removed, because a word still needs a space there.

U+200B zero-width space
Occupies a position, renders nothing. The most common invisible character in copied text.
U+200C zero-width non-joiner
Stops two letters joining. Real typography in Persian, Arabic and several Indic scripts.
U+200D zero-width joiner
Fuses characters, including multi-part emoji, into one glyph.
U+2060 word joiner
Blocks a line break between two characters. Usually found wedged against a dash.
U+FEFF byte-order mark
Belongs at the very start of a file to declare encoding. Stranded mid-document it breaks parsers and feeds.
U+00AD soft hyphen
Invisible until a line wraps there, at which point a hyphen appears in a word that never had one.
U+00A0, U+202F, U+200A
No-break space, narrow no-break space and hair space. Identical to a normal space on screen, different codepoints underneath. Swapped for a plain space.
U+202A to U+202E
Five directional controls: two embeddings, a pop, and two overrides. Built for mixing left-to-right and right-to-left text, and disruptive when left behind.

Scope, stated honestly

Invisible characters this tool does not touch

Unicode has more invisible characters than any one cleaner handles, and a page claiming to remove all of them is usually wrong. These are the ones this tool leaves alone, so you know before you rely on it rather than after.

Variation selectors, U+FE00 to U+FE0F, which alter how a preceding glyph renders. The Mongolian vowel separator, U+180E. The invisible math operators, U+2061 to U+2064. Directional isolates, U+2066 to U+2069, which are a newer mechanism than the embeddings and overrides above.

If your text is failing and none of the 14 above is the cause, one of these is a reasonable next thing to check in a Unicode inspector.

Sources

Where zero-width characters come from

Chat interfaces are the most common source and the reason most people arrive here. The window renders a reply, then hands your clipboard whatever the render produced, and its internal formatting and cursor bookkeeping travels with the text.

PDF exports
Justified text uses soft hyphens and unusual spaces to control line breaking. Copying out of a PDF brings them along.
Word processors
Non-breaking spaces get inserted to hold a number and its unit together, or a name and its title.
CMS and rich-text editors
Zero-width characters mark formatting boundaries so styling survives a copy. They persist after the styling is stripped.
Translation and localisation tools
Directional marks get added around mixed-script content and are frequently left behind.

When not to run it

When these characters are doing a real job

Not every instance is residue. A zero-width joiner between two emoji is exactly what composes them into a single glyph, a family or a profession emoji built from separate characters. Strip that joiner and the emoji visually falls apart, so a joiner inside a genuine emoji sequence is left in place.

The zero-width non-joiner carries the same weight in Persian and several Indic scripts, where it interrupts the script's default joining to keep two letters distinct. Text in those languages should have its instances reviewed individually rather than cleaned in bulk, because what reads as noise in English is functional punctuation there.

Consequences

What invisible characters actually break

Inside a heading or a URL slug, a zero-width space splits the string for anything comparing it character by character: search, a regex, an equality check. Two values that look identical refuse to match, because one carries a codepoint the other does not. In a spreadsheet or a CSV import, the same character silently fails a lookup that should have worked.

There is a security dimension that most tool pages skip. The directional overrides above can reorder how text displays without changing what it actually is, which is how a filename or a link can read differently from what it does. Invisible characters are also a known way to conceal instructions inside text that a language model will read and a person will not. Removing them before text enters a system that acts on it is a reasonable precaution, not paranoia.

Who it's for

Who uses a zero-width space remover, and when

Developers cleaning text pulled from documentation, chat exports or PDFs before it enters a codebase, a config file or a commit, since the failure mode otherwise is a syntax error with no visible cause. Publishing and SEO teams when a slug or an on-page search stops matching a heading for no apparent reason.

It is standard in anything doing programmatic comparison: deduplication, data validation, database imports, anywhere two values that should be identical need to actually match byte for byte.

FAQ

Zero-width space remover questions

Everything below is answered in full, nothing to click open.

How do I remove zero-width spaces from text?

Paste it in and run the removal. Zero-width spaces and the other invisible characters are stripped and the result comes back.

How many invisible characters does it remove?

Fourteen. Eleven are deleted, and three space look-alikes are swapped for an ordinary space. All fourteen are named on this page.

Which invisible characters does it not remove?

Variation selectors, the Mongolian vowel separator, the invisible math operators and the directional isolates U+2066 to U+2069. This tool leaves those alone.

Is the zero-width space remover free?

Yes. No length cap and no run limit, because the work happens on your own device rather than a metered server.

Is my text uploaded anywhere?

No. Detection and removal run entirely in your browser. You can confirm it in your network panel: no request is issued during the run.

What is U+200B?

The zero-width space: a character that takes a position in the text but produces no visible mark at all.

Does it remove the zero-width joiner and non-joiner too?

Yes, along with the word joiner. A joiner inside a genuine emoji sequence is left alone.

Will it break my emoji?

No. A joiner composing a multi-part emoji into one glyph is preserved, since removing it would split the emoji apart.

Does it affect Arabic, Persian or Hindi text?

Letters are never altered. The zero-width non-joiner is meaningful typography in those scripts, so review its occurrences before cleaning in bulk.

Do zero-width characters only come from AI chat tools?

No. PDF exports, word processors, rich-text editors and translation tools all introduce them, and always have.

Does finding one prove text was written by AI?

No. They appear in text from PDFs, word processors and ordinary web pages. A finding tells you how text was handled, not who wrote it.

Can invisible characters be used to hide something?

Yes. Directional overrides can make text display differently from what it is, and invisible characters can conceal instructions a model reads and a person does not.

Do zero-width spaces hurt SEO?

One in a title, slug or meta description can split a keyword, so what a crawler parses stops matching what a reader sees.

Why does find-and-replace fail on text that looks right?

An invisible character between two visible ones is present in the byte stream, so an exact-text search does not match across it.

Can they break code?

Yes. One inside an identifier or a string literal causes a syntax or runtime error that most editors give no visible sign of.

Does removing them change my word count?

Character count can drop. Word count changes only if a zero-width space was standing in for a real space.

Can I clean code snippets with this?

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

Does it work on phones?

Yes, identically in any modern mobile browser.

Is this the same as the general hidden character cleaner?

The character set is the same. This page is scoped to the zero-width family specifically, which is what most people arrive searching for.

Is there a batch mode or an API?

Not currently. This is a single-document, browser-based tool.

Is it safe for confidential text?

Yes. Nothing is transmitted or retained, because nothing leaves your browser.

Can I check without removing anything?

Paste the text and review it before running the removal. Nothing changes until you execute it.

Fourteen invisible characters, gone in one pass.

Runs in your browser with nothing uploaded, no signup and no run limit.

Clean my text