0 chars · 0 words
Ready
Output

Paste your text and run a scan. Hidden characters and AI-sounding phrases appear here, each with the reason on hover.

runs uploaded, all local
0
codepoint families checked
7
on how many checks you run
No limit

Watermark detector

What this watermark detector does

This app scans any block of text for the zero-width and non-printing Unicode characters that can sit inside it invisibly, without changing how the text looks on screen. It's built for the question people actually search for, does this text have a watermark, and it answers with a specific list of findings rather than a vague yes or no.

It's a local, browser-based tool. Scanning runs entirely on your device, nothing is uploaded, there's no account, and there's no limit on how many times you can run it.

This app treats a finding as information, not proof of anything. A lot of what circulates online about text watermarking overstates what a character scan can actually tell you, and the sections below are upfront about that instead of playing along.

Workflow

How to check text for a watermark in three steps

It takes seconds, runs right in the page, and nothing you paste ever leaves your browser.

1. Paste your text
If it's from a chat interface, a document or a webpage, use the source's own copy option rather than retyping it.
2. Scan it
The scan runs locally, right in your browser, and lists every hidden character it finds along with where it sits.
3. Read the findings
A hidden character on its own tells you about formatting, not about who or what wrote the words. Read before you conclude anything.

The characters

The characters this app actually looks for

These are ordinary Unicode codepoints, each with a legitimate technical purpose, that can also turn up as accidental leftovers from copying, converting or formatting text:

U+200B zero-width space
Takes up 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
Meant to sit at the very 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 shows up 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 these characters actually end up in text

Despite a lot of online talk about hidden watermarks, most of what a scan like this finds is incidental. Rich-text-to-plain-text conversion, how a chat interface's editor tracks cursor position, how a word processor exports a document, and how a phone keyboard autocorrects a space are the usual sources. None of that requires anyone to have deliberately hidden anything.

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 travel along regardless of who wrote the underlying words. A finding tells you something happened during formatting. It doesn't, by itself, tell you the text was watermarked on purpose, or written by any particular source.

What real watermarking looks like

Is there such a thing as a real text watermark?

Yes, in a couple of specific senses, and it's worth being precise about which one applies here. Encoding a hidden signal in text using invisible characters is a real, documented technique, sometimes used deliberately in research or leak-tracing tools to mark a specific copy of a document. That's a genuine use of characters like these, just not one that happens by default every time a chat interface generates a reply.

Separately, there's statistical, token-level watermarking: tuning a language model to slightly bias its word-choice probabilities in a pattern detectable with the right statistical test, applied across a whole passage. That's a real area some AI labs have researched. It doesn't insert any characters at all, and no character-level scan, including this app, can see it. A claim that someone detected an AI watermark by scanning for zero-width characters is most likely describing an ordinary formatting artefact, not either of these real techniques.

What a finding actually means

Does finding a hidden character prove the text is AI-written?

No. A hidden character found by this scan is a formatting artefact far more often than a deliberate marker of any kind. The same characters appear in human-typed documents exported from Word, in translated text and in anything copied through a rich-text editor, with no AI involved anywhere in the chain.

Treat a finding as a lead about formatting, worth investigating if it's causing a practical problem, not as evidence about authorship. This app reports what it finds and stops there.

Why you might see a flag

Why perfectly ordinary text can trigger this scan

Plenty of everyday, entirely human workflows produce these same characters.

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 a non-breaking space where a regular space was intended.
CMS and rich-text editors
Switching between rich text and plain text views is a common source of leftover formatting characters.

Why it matters anyway

What these characters actually break, and who runs this scan

Regardless of where they came from, these characters cause real problems once text moves somewhere that parses it strictly. A zero-width space inside a heading splits a keyword, a byte-order mark inside JSON breaks the parser, and non-breaking spaces confuse diffing tools and find-and-replace.

Writers, editors, developers and anyone publishing text they didn't type by hand run this app to catch those problems before they surface downstream. Because it runs locally with no server involved, there's no limit on how many times you can use it.

FAQ

Everything answered. Everything people ask about the watermark detector

Does this text have a watermark?

Paste it in and press Scan text. The app lists every hidden Unicode character it finds and where it sits, which is the most this kind of scan can honestly tell you.

Is this app free?

Yes, and there's no limit on how many times you can use it. It runs locally in your browser with no server involved.

Is my text uploaded anywhere?

No. Scanning runs entirely in your browser. Nothing is transmitted, stored or logged.

Does AI text really have a hidden watermark?

Not in the sense most people mean. The zero-width characters found in AI-generated text are overwhelmingly formatting artefacts, not a deliberate hidden marker, and a scan finding one is not proof of AI authorship.

Is there a real kind of text watermarking?

Yes, in two specific senses: deliberately encoding a hidden signal with invisible characters, a real but uncommon technique, and statistical, token-level watermarking of a model's word choices, which no character scan can see.

Does finding a hidden character prove the text is AI-generated?

No. The same characters appear in human-typed text exported from Word, translated documents and PDF copy-paste, with no AI involved.

What's the difference between this and the invisible character detector?

This app scans locally in your browser with no limit and no server involved. The invisible character detector on this site is a server tool with 5 free checks a day, built for a slightly different workflow.

Which characters does it check for?

Zero-width spaces and joiners, word joiners, byte-order marks, soft hyphens, non-breaking spaces and bidirectional control characters, among others.

Does it change my text?

No. This app only reports what it finds; it doesn't remove or alter anything.

Can hidden characters hurt SEO?

They can. A zero-width character inside a title or heading can split a keyword so what a crawler parses doesn't match what a reader sees.

Why do PDF and EPUB exports sometimes look wrong?

Non-printing codepoints can confuse layout engines and validators, producing odd line breaks or a failed export. Scanning first can help pinpoint the cause.

Does it work on code snippets?

It can scan code as plain text, but it's built and tuned for prose. A snippet that won't compile is worth checking separately for zero-width characters.

Can hidden characters disguise a link?

Yes, invisible and direction-override characters can make a URL or file name display differently from how it actually resolves.

Does it handle non-English text?

The characters themselves are language-independent, though a couple, like the zero-width non-joiner, are meaningful in certain scripts and worth a closer look before assuming they're stray.

Do I need to install anything?

No. It's a web page. Open it, paste, scan, read the results.

Is there a batch mode or an API?

Not currently. For several documents, the fastest route is paste, scan, repeat.

Can I scan confidential or personal text here?

Yes. Since scanning happens locally in your browser, nothing sensitive is transmitted or retained anywhere.

Why did my own writing trigger a flag?

Usually a word processor, translation tool, PDF export or mobile keyboard left a character behind during normal formatting, not because of anything unusual in your writing.

Does it work on phones?

Yes. The page works on a phone browser with no app to install.