Remove Accents from Text
| Input | Output | Why |
|---|---|---|
| Zoë | Zoe | diaeresis decomposes and strips |
| resumé | resume | accent combing mark removed |
| Grüße | Grusse | u-umlaut strips; sharp s maps to ss |
| bjørn | bjorn | slashed o maps to plain o |
| œuf | oeuf | oe ligature spells out |
Paste accented text and get the plain-ASCII twin, live: Zoë becomes Zoe, résumé becomes resume, naïve becomes naive - every accented Latin letter folds to its unaccented base while the rest of the text passes through untouched. The counter keeps score of how many characters changed, and a checkbox-click of special cases comes pre-handled: German ß turns into ss, Scandinavian ø into o, and the ligatures æ, œ and ß into their spelled-out forms.
The everyday reasons to flatten text: URLs and slugs that must survive every browser and database, legacy forms and shipping labels that choke on anything beyond A-Z, keyword matching where Jablonski and Jabłoński should count as the same name. Everything runs in this browser tab - your text never uploads anywhere - and the honest boundary is Latin: accented Greek, Cyrillic and Chinese pass through unchanged, which is the correct answer since they have no ASCII twin.
How to use
- Paste your text - the flat version appears live in the second box, no button needed.
- Copy the result straight out; the counter says exactly how many characters were changed.
- Feeding a URL builder? Pair this with the slug generator for slugs that survive every system.
Frequently asked questions
How do I remove accents from text?
Paste it above - the clean version builds itself in the second box as you type. The standard method underneath is Unicode normalization (NFD), which splits each accented letter into base letter plus a combining mark, followed by sweeping away the marks: é becomes e + a floating accent, and the accent never survives. Special shapes that refuse to decompose - the German sharp s, the Scandinavian slashed o, the ae and oe ligatures - get explicit replacements first.
Why would I strip accents at all?
Three honest reasons: URLs and slugs, where browsers and databases each handle é differently and some mangle it; legacy systems - old shipping labels, ASCII-only form fields, import validators - that reject or corrupt anything beyond plain A-Z; and search or dedup work where Müller and Muller should match as the same person. Stripping is lossy on purpose: the accent is information, and you are choosing to drop it for compatibility.
Does it handle the German ß and ligatures?
Yes, by explicit mapping rather than decomposition, because those characters have no decomposable form: ß becomes ss (so Grüße reads Grusse), ø becomes o (bjørn to bjorn), and the æ and œ ligatures spell out to ae and oe. Capital forms map to capitals. These are the exact cases that trip up naive accent strippers - the ones that silently pass ß through and leave it lurking in your clean ASCII.
What happens to non-Latin text?
It passes through untouched, correctly. Greek, Cyrillic, Hebrew, Arabic, Chinese and Japanese have no ASCII equivalents to fold into - flattening them to question marks would destroy the text, not clean it. The tool only strips what has an honest Latin base: accented Latin letters and the special shapes above. Mixed text comes out with exactly the Latin parts flattened.
Is my text uploaded anywhere?
No. The conversion runs inside this browser tab - no server, no logging, no account. Your text stays in the page's local storage on your own device (up to 20,000 characters) so a refresh does not lose it, and nothing leaves your machine unless you copy it out yourself.