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- Category
- Control characters
- 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
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