Skip to content
augur

What it finds

Zero-width characters

A codepoint that occupies no space and draws nothing. It survives a copy, a paste and a rename, because as far as any of those are concerned it is text like any other.

U+200B ZERO WIDTH SPACEU+200C ZERO WIDTH NON-JOINERU+200DU+FEFF

One is an artefact. The same one on twelve lines is a mark

$ augur scan --min-severity=alarm draft.txt
draft.txt (text): 1 finding(s)

FINGERPRINT
 * [alarm] offset 36 — 2 kinds of zero-width character (U+200B, U+200C) appear 14 times across 14 lines, about one per line
       alphabet=U+200B ZERO WIDTH SPACE ×7, U+200C ZERO WIDTH NON-JOINER ×7
       occurrences=14
       lines=14
       cadence=about one per line
       offsets=36, 93, 108, 136, 164, 192, 220, 248, … and 6 more

* not removable — reported and left in place

One finding, not fourteen: it is about the set rather than about any character in it. Two codepoints interleaved, one to a line across fourteen lines, is a bit per line — enough to say which copy of a document you were given. The alphabet line names which characters carry it.

Where they come from

Pasting out of a chat assistant, a CMS or a PDF. Word processors emit them around formatting boundaries. None of that is an attack, which is why a lone one is reported as a notice and not as a problem.

The version worth knowing about is the same character used as a carrier: a run of them encoding a message, or a per-recipient pattern identifying whoever leaked the document.

Taking them out

$ augur clean draft.txt
wrote draft.clean.txt
verified: 14 removed, 0 finding(s) deliberately left in place

The characters go; the fingerprint finding is marked not removable because it is a description of a pattern rather than a thing in the file. Remove the characters and the pattern leaves with them.

$curl -fsSL https://raw.githubusercontent.com/dejo1307/augur/main/install.sh | sh

Related:Invisible characters in AI textUnicode tag charactersPer-copy watermarkseverything it looks for