Text watermark guide

ChatGPT hidden characters: what a checker can find

An invisible Unicode character in copied AI text is a fact about the string, not proof of where it came from. A checker can identify the code point and position. It cannot determine whether ChatGPT, another model, an editor, a website, or a person inserted it.

What people call a “ChatGPT watermark”

Online discussions often use “ChatGPT watermark” for several unrelated things: zero-width Unicode, unusual spaces, visible writing habits, document formatting, AI-detector scores, and statistical token watermarks. Combining them creates misleading claims because each requires different evidence.

Zero-width spaces, joiners, direction controls, tags, and variation selectors are real Unicode characters. They may be invisible, but they can be copied, counted, and named. Their origin is not encoded in the character itself.

What an invisible character checker can prove

ClaimCan this checker support it?
“The text contains U+200B at position 42.”Yes, by inspecting the string
“The text contains a supported direction control.”Yes, by code point category
“ChatGPT inserted this character.”No; the code point has no origin record
“The text was written by AI.”No; authorship is outside the check
“The text has a statistical SynthID mark.”No; that needs a compatible detector

Statistical text watermarks work differently

A statistical watermark changes how a model selects tokens during generation. The visible output remains ordinary text, but a compatible detector can test whether token choices contain the expected pattern. Google describes SynthID-Text in these terms.

Because the signal lies in token-selection statistics, deleting zero-width characters is not equivalent to removing it. Likewise, paraphrasing is not a reliable proof that a detector will no longer recognize a mark. Without the correct detector and key, a general browser tool cannot certify the result.

How to clean hidden Unicode safely

  1. Detect before changing. Record the name, code point, count, and position.
  2. Check the language and context. Emoji, right-to-left scripts, and typography may depend on matched characters.
  3. Create a separate copy. Keep the original available for comparison.
  4. Re-check and proofread. Confirm supported findings are gone and visible text still means the same thing.

Sources: Unicode Standard, Chapter 23 and Google DeepMind SynthID. Last reviewed August 12, 2026.