Invisible character detector
What the invisible character detector does
The invisible character detector is a free hidden character checker: paste in a paragraph, essay, email or comment, and it finds the zero-width and non-printing Unicode characters inside it, without changing how the text looks. It answers the question people type into a search bar, why does my text have hidden characters, with a plain list of what it found and where, not a vague warning.
This is a server tool, not a browser script. Your text is sent to our AI server to be checked; you get 5 free checks in any rolling 24 hours. There's no account to create, and no text you paste is needed twice. What comes back is a list of findings, not an accusation, and this page explains honestly why they're there before explaining what to do about them.
How it works
How to check text for invisible characters in three steps
It takes less time than reading the result does. There's no file upload, no formatting to strip out first, and nothing to configure before you run the check: paste, run, read.
- Step 1
- Paste the text you want checked. Use the source's own copy button, not selecting by hand, since that's the version most likely to carry hidden characters.
- Step 2
- Press Check text. It goes to our AI server once, gets scanned for hidden Unicode characters, and the result comes back to the page.
- Step 3
- Read each flagged character and where it sits. Nothing about the text is changed; this page only reports what it found.
The characters
The hidden characters this tool actually looks for
These are ordinary Unicode codepoints. Each has a legitimate technical purpose, and each can also turn up as an accidental leftover from copying, converting or formatting text. The check looks for these specifically:
- U+200B zero-width space
- Occupies a character slot and renders nothing. The most common invisible character found in copied text.
- U+200C / U+200D joiners
- Zero-width non-joiner and joiner. Meaningful in some scripts and emoji, often a stray leftover elsewhere.
- U+2060 word joiner
- An invisible joiner that prevents a line break at that point, frequently left behind by rich-text conversion.
- U+FEFF byte-order mark
- A marker meant to sit at the start of a file, sometimes left stranded mid-document by an export tool.
- U+00AD soft hyphen
- Invisible until a line wraps there, then a hyphen appears in a word that never had one.
- U+00A0 / U+202F non-breaking spaces
- Look identical to a normal space, behave differently in code, slugs and search.
- Bidi controls (U+202A to U+202E)
- Directional embedding and override characters that can quietly reorder how text displays.
Where they come from
Why hidden characters actually end up in text
This is worth being straightforward about. Despite a lot of talk online about AI tools hiding secret watermarks in their output, that isn't usually what's happening. These characters are overwhelmingly incidental artefacts of ordinary text handling: rich-text-to-plain-text conversion, a chat interface tracking cursor position, a word processor exporting a document, or a phone keyboard autocorrecting a space.
Copy text out of a Word document, a Google Doc, a PDF, a translated page or a chat interface, and some of these characters can come along regardless of who wrote the underlying words. Finding one tells you something happened during formatting or conversion, not that an AI model, or any specific one, wrote the text.
What a finding actually means
Does finding a hidden character prove text is AI-written?
No, and this tool won't claim otherwise. A hidden character is a formatting artefact, not a fingerprint. The same characters show up in human-typed documents exported from Word, translated text, and anything copied through a rich-text editor, with no AI involved anywhere in the chain.
It's also worth separating this from a different, real area of research: statistical, token-level watermarking, where a model can be tuned to slightly bias its word choices in a pattern a statistical test can detect, operating on word-choice probability across a whole passage, not on inserted characters. No character-level scan, including this one, can see it. A claim that AI text carries a watermark findable by scanning for zero-width characters describes something different from how real watermarking research works.
Why you might see a flag
Why human-written text can trigger this too
Plenty of ordinary human workflows produce the same characters. Knowing the common causes helps you read a result correctly, instead of jumping to a conclusion it doesn't support.
- Word processor exports
- Word, Google Docs and similar tools insert non-breaking spaces and soft hyphens as part of normal formatting.
- Translation tools
- Machine and professional translation software frequently leaves directional or joining characters behind.
- PDF copy-paste
- Extracting text from a PDF often introduces stray characters the original document never displayed.
- Mobile keyboards
- Autocorrect and predictive text on phones can insert non-breaking spaces where a regular space was intended.
- CMS and rich-text editors
- Switching between rich text and plain text views in a CMS is a common source of leftover formatting characters.
Why it matters anyway
What these hidden characters actually break
These characters cause real, practical problems once text moves somewhere that parses it strictly. A zero-width space inside a heading splits a keyword, so a page's slug and visible title stop matching. A byte-order mark stuck inside a JSON file breaks the parser, and non-breaking spaces confuse diffing tools. This detector answers whether a character is present, and where it came from, rather than letting a scan result stand in for an accusation.
Who uses it, and the free checks
Who uses the invisible character detector, and how many free checks you get
Writers, editors, developers and anyone publishing text they didn't type by hand use this to catch formatting problems before they cause one. This is a server tool: your text travels to our AI server to be checked, then travels back. That round trip makes the check possible, and it's why there's a limit.
You get 5 free checks in any rolling 24 hours, tracked without an account. Five is enough for most real uses: one document, one email, one flagged section at a time. The window rolls forward continuously, not resetting at a fixed hour.