Text Normalizer
Normalize messy text into clean, comparable form: Unicode NFC composition, accent folding (café → cafe), zero-width and invisible-character removal, control-character stripping and whitespace collapsing. The preprocessing step that makes string comparison and deduplication trustworthy.
Worked examples
Accents + zero-width + double space
GET /api/v1/dev/text-normalize?text=caf%C3%A9%20%E2%80%8Bna%C3%AFve%20%20r%C3%A9sum%C3%A9
Result: cafe naive resume
Full-width and control chars
GET /api/v1/dev/text-normalize?text=%EF%BC%A8%EF%BC%A5%EF%BC%AC%EF%BC%AC%EF%BC%AF%07%20world
Result: HELLO world
Lowercased for comparison
GET /api/v1/dev/text-normalize?text=%C3%81bc%20D%C3%A9f&lowercase=true
Result: abc def
Machine API (x402)
$0.01 / callThis tool is also a JSON API for AI agents. Requests without payment receive 402 Payment Required plus instructions; agents pay USDC on Base via the x402 protocol — no accounts, no API keys.
GET /api/v1/dev/text-normalize?text=caf%C3%A9%20%E2%80%8Bna%C3%AFve%20%20r%C3%A9sum%C3%A9 HTTP/1.1
Host: agentstoolshub.com
→ 402 (payment required, instructions in headers)
→ 200 (after X-PAYMENT header; JSON body below)
{
"tool": "dev/text-normalize",
"input": {"text":"café naïve résumé"},
"result": { "value": 17, "answer": "cafe naive resume" }
}Agent docs: /llms.txt · OpenAPI spec · integration guide
About this tool
Deterministic text cleanup for comparison pipelines: NFC composition, accent folding to plain ASCII where possible, zero-width character removal (the classic paste-attack trick), control-character stripping and whitespace collapsing. Same input, same output — what dedup and matching need.
Frequently asked questions
Which invisible characters are removed?
Zero-width space/joiners (U+200B–200D), BOM (U+FEFF), soft hyphen (U+00AD) and C0 control characters — the ones used to hide keywords or split banned words.
Does accent folding handle all languages?
Latin-script accents fold cleanly (é→e, ñ→n). Non-Latin scripts (Chinese, Arabic) pass through unchanged — normalization here is about Latin text cleanliness.