Remove control characters

Strip null bytes and non-printable control characters from text. Keep tabs and newlines, or remove every control character. Runs in your browser; nothing is uploaded.

Cleaned text

About this tool

Remove control characters strips invisible, non-printable control characters from text. These are the characters in Unicode category Cc — the C0 range (U+0000–U+001F, which includes the null byte U+0000, the bell, backspace, and form feed) and the C1/DEL range (U+007F–U+009F). They often sneak in when copying from logs, binary files, terminals, or badly-encoded exports, and can break imports, databases, and search.

By default the tool keeps the control characters you usually want:

Turn either off to strip those too. The Replacement field lets you substitute a character (for example a single space) for every removed control character; leave it empty to simply delete them.

Privacy

Everything runs in your browser via WebAssembly — your text is never uploaded to a server. You can also run it from the gizza CLI or inside a gizza chat.

Common uses

FAQ

Exactly which characters get removed?

Everything in Unicode category Cc: the C0 controls U+0000–U+001F (null, bell, backspace, escape, form feed, …) plus DEL and the C1 range U+007F–U+009F. Tab, line feed, and carriage return are technically in that set but are kept by default because they're meaningful whitespace — untick Keep tabs / Keep newlines to strip them as well.

Does it remove zero-width spaces and other invisible Unicode?

No — and that's deliberate. Characters like the zero-width space (U+200B), byte-order mark (U+FEFF), and soft hyphen are Unicode format (Cf) characters, not control (Cc) characters, so this tool leaves them alone. If an invisible character survives cleaning, it's likely one of those rather than a control character.

Can I replace control characters with a space instead of deleting them?

Yes — put a space (or any string) in the Replacement field and every removed control character is substituted with it. Leaving it empty deletes them outright. The replacement can even be multiple characters, e.g. ? or [CTRL] if you want the removals to be visible.

Will emoji, accents, or my line endings be affected?

No. Printable Unicode — emoji, accented letters, CJK, punctuation — is never touched, and with Keep newlines on (the default) both \n and \r pass through, so Windows CRLF line endings survive intact.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool remove-control-chars "Paste text with control characters here…"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/remove-control-chars/?text=Paste%20text%20with%20control%20characters%20here%E2%80%A6&keep_tabs=true&keep_newlines=true&replacement=%28empty%20%3D%20delete%29

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.