Invisible Character Scanner & Cleaner

Detect and remove zero-width spaces, BOM, formatting marks, and more with a single click.

Detection Summary

No invisible characters found!

Advanced: Category Filters

About This Tool

The Invisible Character Scanner & Cleaner is a privacy-first, fully client-side web utility built in November 2025 to solve a growing real-world problem: hidden Unicode characters silently breaking code, enabling spam, and poisoning clipboard content.

From zero-width spaces (U+200B) and joiners (U+200C–U+200D) to BOMs (U+FEFF) and obscure formatting controls, these characters are invisible in most editors but cause JSON parse failures, broken diffs, Discord raids, and even homograph attacks.

Unlike every other online cleaner, this tool sends nothing to any server. All detection, highlighting, removal, and clipboard operations happen 100% in your browser using SvelteKit and modern Unicode-aware JavaScript regex. No logs. No tracking. No backend. Your API keys, private messages, and source code never leave your device — ever.

Built to SRS Specification (Nov 2025)

  • FR-01–FR-10 fully implemented
  • NFR-01: Detection 100ms on 500 KB text
  • NFR-02: Fully responsive (mobile 320px+)
  • NFR-03: Final build ≤ 300 KB gzipped
  • NFR-06: Proper ARIA labels & keyboard navigation
  • Deployed via @sveltejs/adapter-static on GitHub Pages

Open source • MIT licensed • Self-hostable in seconds

Trusted by developers, Discord moderators, and security-conscious users worldwide.

How to Use in 30 Seconds

1

Paste or Type

Paste any suspicious text — code, JSON, chat logs, or clipboard content — into the large textarea. Detection begins instantly on every keystroke (FR-02).

2

See Hidden Characters

Invisible characters are immediately highlighted in the live preview below with their exact code point (e.g., U+200B). The red badge shows total count, and the summary panel lists every unique type (FR-03, FR-04).

3

Clean Instantly

Choose your action:
Remove All — permanently deletes every invisible character (FR-05)
Replace All — swaps them for a visible placeholder like [INV] or [ZW] (FR-06)
Copy Clean — copies fully sanitized text to clipboard (FR-07)
Paste & Clean — reads clipboard and inserts cleaned version (FR-09)

Pro Tip: Use the Advanced → Category Filters toggle to disable detection of legitimate characters (e.g., ZWNJ in Persian text or non-breaking spaces in design mockups) — full control without false positives.

Frequently Asked Questions

Yes — 100%. This tool has no backend, no API calls, no analytics, and no cookies. All processing uses only client-side JavaScript. Even if you paste sensitive API keys or private messages, they never leave your browser. This is verified in the network tab: zero outgoing requests after page load.

Only if invisible characters were inserted between visible letters (common in attacks). Example: Hello‌WorldHelloWorld. This is correct behavior — the original text was already broken. Use Replace All first if you want to audit what was removed.

Absolutely. Fully responsive from 320px upward (NFR-02). Works perfectly on iPhone, Android, iPad — including clipboard access (with user permission).

Yes — built with adapter-static and correct base path handling in svelte.config.js. All routes and assets resolve perfectly on both user and project sites (FR-10).

Yes! MIT licensed. Fork it, improve it, host it anywhere. One-command deploy with npm run build && gh-pages -d build or similar.