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 placeOne 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 placeThe 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 | shRelated:Invisible characters in AI textUnicode tag charactersPer-copy watermarkseverything it looks for