Strip accents and transliterate text to plain ASCII

Turn café, Straße, Ærøskøbing and Москва into ASCII-safe text for slugs, filenames, search keys and CSV cleanup. Choose full transliteration or conservative mark removal, decide what happens to unmapped characters, and keep selected letters when they matter.

Try:
Converted text

About this tool

accent-stripper converts Unicode text into ASCII-friendly text. It is for the everyday cleanup jobs where accents and non-ASCII letters break matching, filenames, URLs, search keys or legacy systems: café becomes cafe, Straße becomes Strasse, Ærøskøbing becomes AEroskobing, and Москва becomes Moskva.

The default Transliterate to ASCII mode uses a transliteration table, not just Unicode decomposition. That matters for letters such as ß, ø, Æ, Ł, Đ, Greek, Cyrillic and CJK characters, because many of them do not carry a removable combining accent. For a conservative normalization pass, switch to Marks only: it removes combining marks (ée) but leaves letters like ß or Ж alone unless your unmapped policy removes or replaces them.

Worked example

Input:

Crème Brûlée à la Française — Straße, Ærøskøbing, Москва

Default output:

Creme Brulee a la Francaise -- Strasse, AEroskobing, Moskva

For slug preparation, enable lowercase and collapse whitespace:

  Déjà Vu: Señor Piñata!  

becomes:

deja vu: senor pinata!

You can then pass that through a slugifier or punctuation filter if you need dashes instead of spaces.

Options and limits

FAQ

Does this only remove accents, or does it transliterate too?

The default mode transliterates. It handles plain accents (ée) and characters that do not have removable marks (ßss, øo, ÆAE, ЖZh). Switch to Marks only if you want the narrower Unicode-decomposition behavior that only drops combining accents.

Why did some characters stay non-ASCII?

Either you used Marks only, you protected them with Keep these characters, or the transliteration table had no ASCII spelling for them. Set Characters still non-ASCII to remove or replace when the output must be strict ASCII, or enable the JSON audit report to see how many characters were unmapped.

Can I keep ñ while stripping other accents?

Yes. Put ñ in Keep these characters. Then mañana café becomes mañana cafe: the protected ñ stays, while the accented é is converted. The keep list is literal, so add each character you want protected.

Is this a full slug generator?

No. It prepares text for a slug by removing accents, optional lowercasing, and optional whitespace collapse. It intentionally does not remove punctuation, choose separators, enforce uniqueness, or apply site-specific URL rules. Chain it with a slug or regex cleanup tool when you need that final formatting.

Is my text uploaded?

No. The same Rust core runs locally in the WebAssembly page and in the CLI. The text is processed in your browser or terminal, not sent to a server.

Developer & Automation Access

Run it from the terminal

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

gizza tool accent-stripper "Crème Brûlée à la Française — Straße, Ærøskøbing, Москва"

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/accent-stripper/?input=Cr%C3%A8me%20Br%C3%BBl%C3%A9e%20%C3%A0%20la%20Fran%C3%A7aise%20%E2%80%94%20Stra%C3%9Fe%2C%20%C3%86r%C3%B8sk%C3%B8bing%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&mode=transliterate&unmapped=keep&replacement=%3F&keep=%C3%B1%2C%C3%B8&lowercase=true&collapse_whitespace=true&include_report=true

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