
What each one is, where it comes from, and — the part most tools skip — when it belongs exactly where it is.
control-charThe non-printing control codes inherited from teleprinters and terminals: bell, form feed, escape, delete and their relatives, plus a second block that arrived with the 8-bit character sets.
space-variantSpaces that are not the ordinary space: some prevent a line break at that point, some have a fixed width regardless of the font, some do both. They are visible as whitespace but indistinguishable by eye from a normal space.
smart-quotesTypographic quotation marks and their relatives: the curved opening and closing forms, the low forms German uses, and the angled guillemets of French and several other languages.
soft-hyphenAn invisible hint that says a hyphen may be drawn here if the line has to break. When the line does not break there, nothing is shown at all.
bidi-controlBidirectional controls tell the text renderer which direction a run of characters should be laid out in. They are invisible and they change nothing about the stored text — only about how it is drawn.
zero-widthA 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.
joinerTwo invisible characters that control whether the glyphs around them join: one forces a connection, the other prevents one. They are zero-width, and they carry meaning.
dashesThe dashes that are not the ASCII hyphen-minus: the en dash of ranges, the em dash of interruptions, the true minus sign of mathematics, and the non-breaking hyphen.
ellipsisThree dots as a single character, with the spacing between them set by the font rather than by three separate periods.
line-separatorUnicode's own line and paragraph breaks, separate from the line feed and carriage return inherited from ASCII. They mean the same thing and are handled correctly by far fewer programs.
variation-selectorInvisible characters that pick between two shapes of the character before them. The best-known pair chooses whether a symbol is drawn as flat black-and-white text or as a colour emoji.
replacement-charThe visible tombstone of a character that was lost. A decoder that meets a byte sequence it cannot interpret puts this in its place, so the failure is recorded rather than silently swallowed.
tag-charactersA block of 128 codepoints that mirror printable ASCII and render as absolutely nothing. They were introduced for language tagging, that use was deprecated, and what remains is a complete invisible alphabet.
homoglyphEach character is perfectly correct in its own script. There is nothing wrong with a Cyrillic a in a Russian word.
TraceFree PRO therefore reports these only inside words that mix scripts, and never in single-script text. That restraint is deliberate: a false positive here costs more trust than a missed detection.
| Feature | PRO * | FREE * |
|---|---|---|
| All 516 characters the engine knows | Yes | Yes |
| Context guards: emoji, Arabic and Indic scripts, CJK stay intact | Yes | Yes |
| Bidirectional controls (“Trojan Source”) | Yes | Yes |
| Homoglyphs inside mixed-script words | Yes | Yes |
| Watch the clipboard | Yes | Yes |
| Before-and-after comparison before any change | Yes | Yes |
| Four rule sets: default, conservative, strict, report only | Yes | Yes |
| Interface in 20 languages | Yes | Yes |
| No account, no network access | Yes | Yes |
| Automatic mode: clean quietly, without asking | Yes | – |
| Watch folders and clean text files, with backups | Yes | – |
| Rules of your own for individual characters | Yes | – |
* Moving from FREE to PRO is a one-time in-app purchase, not a subscription.
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.

