Find characters hiding
in your text
Zero-width marks, bidirectional controls, and space lookalikes render as nothing yet occupy real bytes. Paste anything to see them.
What counts as a hidden character, and what this cannot find
Six categories of characters that render as nothing, or as an ordinary space, while occupying real bytes: zero-width characters, invisible format controls, bidirectional controls, variation selectors, nonstandard whitespace, and the Unicode Tags block. People use that gap for text watermarking, for steganographic payloads, and for Trojan-Source attacks (CVE-2021-42574). A seventh, opt-in category covering every remaining Unicode default-ignorable code point is available in the command line tool.
Every hit is rated. Annotated, likely-legitimate uses (a byte-order mark at the start of a file, a joiner between two emoji, French punctuation spacing) are info. Unexplained invisibles are medium. The members that reorder text or smuggle payloads are high. "Suspicious only" hides the benign ones.
What this cannot find. Statistical watermarks, the kind that bias which ordinary word a model picks, add no characters at all. Nothing in the bytes can reveal them, so no scanner can find them, this one included. A hidden-character mark and a statistical one are different mechanisms, and only the first leaves anything to find. Where a vendor is reported to use either, treat that claim as something to verify against that vendor's own documentation: markcheck carries no vendor list and takes no position on intent.
A clean result means "no hidden characters." It does not mean "not AI-generated."