
Renders as blank width; used to hide data.
zero-widthinvisibleA zero-width character takes up no space and draws no glyph. In an editor the cursor steps over it and nothing moves; in a text field the line looks exactly as it would without it. It is nevertheless a character, stored in the file and counted by every length function.
Mostly from machines rather than people. Content management systems insert them to control line breaking, word processors leave them behind when text is reflowed, and text generated by a language model carries them out of the tokenizer. Some arrive deliberately: a zero-width character is the simplest way to mark a copy of a document without the mark being visible.
In running prose, almost never. That is why this group defaults to removal.
There are exceptions, and TraceFree PRO knows them: a byte order mark at the very start of a file is a legitimate encoding marker, and a few of these codepoints are ordinary parts of the scripts they belong to.
| Preset | Action |
|---|---|
conservative | removed |
default | removed |
report-only | asked about |
strict | removed |
Context guards can only ever make a cleanup gentler, never sharper. A rule saying “always remove” does not override them.
In TraceFree PRO, turn on the clipboard watcher and copy the text. On the command line:
tracefree clean --backup document.txt
pbpaste | tracefree clean | pbcopyReport without changing anything — exit code 1 on findings, so it works in CI:
tracefree check -r ./docsThis page never prints the character itself, only ways of writing it. A page about invisible characters that contained invisible characters would be unreviewable — and that is the problem the program exists to solve.
| Notation | Value |
|---|---|
| Unicode | U+3164 |
| Rust | \u{3164} |
| JavaScript, Python | \u3164 |
| HTML | ㅤ ㅤ |
| Regex (PCRE, Rust) | \x{3164} |
Paste anything into the browser demo and see what is in it. Same engine as the app, running entirely on your device — nothing is uploaded.

