What this checker can verify
- Invisible and zero-width characters — U+200B zero width space, zero width joiners, word joiners, soft hyphens, byte-order marks and other non-printing code points, each reported with its Unicode name, code point, count and positions.
- Unusual whitespace — non-breaking spaces, thin/hair spaces and other look-alike spaces that differ from a plain U+0020.
- Directional and control characters — bidirectional overrides (the “Trojan Source” family) and stray C0/C1 controls.
- Normalization state — whether the text uses decomposed Unicode sequences that make visually identical strings differ.
What this checker cannot prove
Character-level inspection cannot see statistical watermarks. Claude’s embedded text watermark and Google’s SynthID for text work by shaping word choice probabilities, not by inserting hidden characters — and today they can be read only by their providers. A clean result here therefore doesn’t mean “not AI”, and hidden characters don’t mean “AI” either: word processors, chat apps and web pages insert invisible characters all the time.
If a provider ships public text-watermark verification, it will appear here as a separate, clearly labeled check. Track that on the provider status page.
Related
- Hidden character checker — the same engine, focused purely on invisible Unicode.
- Claude watermark checker — what Anthropic marks and how to verify it.
- How AI text watermarks work — statistical marks vs hidden characters vs provenance.