Skip to content
Ghostchars

Control characters

C0 CONTROL CHARACTERS (U+0000-U+001F)

The 32 ASCII control codes: NUL, BEL, ESC, the file and record separators, and the rest. They are commands to a teletype, not text.

Range
U+0000-U+001F
Also written as
u0000-u001f
Removed by default
No
Governing option
Control characters --controls
Can be load-bearing
No

There is no copy and paste button on this page, on purpose: this is a block of characters rather than one, and none of them is something you need to paste on its own.

Where it comes from

Binary data pasted as text, terminal output that still contains escape sequences, log files, mis-decoded files, and payloads that exploit software which handles them badly.

Why it matters

A NUL truncates a C string; an ESC can start a terminal escape sequence that changes what you see; the separators split records in unexpected places. Most of them render as nothing or as a placeholder box, so a reviewer sees a gap.

Before and after

C0 CONTROL CHARACTERS (U+0000-U+001F) before and after cleaning, with the hidden character shown as a labelled chip
Reference card for this character: the codepoint, the verdict, and the same before and after in one image.
BeforeokU+0007done
Afterokdone

U+0007 BELL: a character that used to ring a physical bell, now invisible.

The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.

When it is legitimate

Tab, line feed and carriage return, which is exactly why Ghostchars excludes those three from this group and never removes them.

How to remove it

Turn on Control characters (`--controls`). Tab, LF and CR are never touched; CR is handled separately by the line-ending pass.

Working in a file rather than a paste? The document report for .docx, .odt and .html finds it inside the file, together with hidden runs and tracked changes, without you having to open it. If the question is what the rest of the writing does rather than what this one character does, measure sentence-length variation and see where each habit sits, with no score and no claim about who wrote the text.

Is it an AI watermark?

Not a watermark

No. Control characters in text mean a decoding problem or a deliberate probe. No model produces them as prose.

No connection to machine-generated text. It comes from software, from a keyboard, or from a person.

Questions

Does it remove tabs?

No. Tab (U+0009), line feed (U+000A) and carriage return (U+000D) are excluded from this group. Line endings are handled by `-n`.

Why does my terminal go strange when I cat the file?

An ESC character starts an escape sequence, and the terminal obeys it. That is one reason to clean untrusted text before printing it.

Check your own text

Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.

Check your own textClean it in Chrome as you pasteClean it on your Mac with one keystrokeAll characters

Anonymous usage stats?

Ghostchars processes your text in the browser and never uploads it. We would like to count page views with a self-hosted, cookie-light analytics endpoint. No content, ever.