Invisible Character Scanner & Cleaner
Detect and remove zero-width spaces, BOM, formatting marks, and more with a single click.
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-staticon 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
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).
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).
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)
Frequently Asked Questions
HelloWorld → HelloWorld. This is correct behavior — the original text was already broken. Use Replace All first if you want to audit what was removed.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).npm run build && gh-pages -d build or similar.