Normalize Persian Text

Clean up Persian/Farsi text in one pass — fold Arabic letters to Persian, fix half-spaces (ZWNJ), convert digits, and correct punctuation spacing. Runs in your browser; nothing is uploaded.

Try:
Normalized text

About this tool

This Persian/Farsi normalizer cleans text copied from mixed Arabic/Persian sources. It can fold Arabic code points into Persian letters, convert digit scripts, tidy نیم‌فاصله (ZWNJ) half-spaces, correct punctuation spacing, strip harakat/diacritics, and collapse messy whitespace. Each pass is optional, so you can run a full cleanup or isolate one rule while preserving the rest of the text.

Common fixes include:

Worked example

Input:

كتاب123 را مي خواهم ,خوب

With the default cleanup options, the output is:

کتاب۱۲۳ را می‌خواهم, خوب

Turn on Persian punctuation if you also want Latin punctuation converted, for example , to ، and ? to ؟.

FAQ

What is ZWNJ / نیم‌فاصله?

ZWNJ is the zero-width non-joiner character used as a Persian half-space. It keeps letters visually separated without a full word space, as in می‌روم or کتاب‌ها. The half-space option cleans spaces around existing ZWNJs and adds them for common prefixes and suffixes.

Can I keep English digits?

Yes. Set Digits to English digits to convert Persian and Arabic-Indic digits to 0-9, or choose Keep to leave all digit scripts untouched. The default is Persian digits because this tool is optimized for Persian publishing.

Does it change meaning or rewrite sentences?

No. It is a deterministic text normalizer, not a spell checker or rewriter. It fixes Unicode variants, spacing, punctuation, digits, and optional diacritics; it does not infer grammar, lemmatize words, or replace vocabulary.

Why is Persian punctuation off by default?

Changing ,, ;, and ? to Persian ،, ؛, and ؟ is useful for final copy, but it is more content-changing than spacing or Unicode folding. Enable it when you want Persian punctuation marks; leave it off when preserving Latin punctuation from source data matters.

Developer & Automation Access

Run it from the terminal

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

gizza tool persian-text-normalizer "متن فارسی را اینجا وارد کنید…"

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/persian-text-normalizer/?text=%D9%85%D8%AA%D9%86%20%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%20%D8%B1%D8%A7%20%D8%A7%DB%8C%D9%86%D8%AC%D8%A7%20%D9%88%D8%A7%D8%B1%D8%AF%20%DA%A9%D9%86%DB%8C%D8%AF%E2%80%A6&characters=true&digits=persian&half_space=true&punctuation_spacing=true&persian_punctuation=true&remove_diacritics=true&whitespace=true

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