Accent Remover
Three modes — strip diacritics with Unicode NFD, transliterate the ligatures NFD can’t reach (ß, æ, ø, Ł, þ, ð), or generate URL-safe slugs. Modified characters are highlighted inline.
Text input
What gets replaced
Strip · TransliterateStrip mode handles anything Unicode can decompose. Transliterate adds a curated map for the characters NFD cannot break apart — ligatures, eth, thorn, the Polish slash-L.
Which mode should I pick?
Pure NFD: every base character is preserved, only the combining marks are removed. ß stays as ß, æ stays as æ. Best when you want a faithful Latin form without diacritics — e.g. cleaning author names for alphabetical sorting.
São Paulo, Dvořák
→
Sao Paulo, Dvorak
NFD plus a curated map for characters Unicode cannot decompose: ß→ss, æ→ae, ø→o, Ł→L, þ→th, ð→d. The right choice when downstream code is strictly ASCII (legacy systems, file names, identifiers).
Straße, Bjørn
→
Strasse, Bjorn
Transliterate, then lowercase, collapse whitespace and punctuation into -, and trim trailing dashes. Drop straight into a URL path or a filesystem-safe name. Pairs with the Text-to-Slug Generator.
Crème Brûlée & Co.
→
creme-brulee-co
How It Works
é into a base letter e followed by a combining acute accent U+0301. Stripping every code point in the combining-marks range U+0300–U+036F leaves the base letters intact.NFD has limits. Some letters are not just "base + accent" — they are atomic glyphs with no decomposition. The German sharp s
ß, the Nordic ø, the Polish ł, the Old English þ and ð, and ligatures like æ and œ all survive NFD untouched. Transliterate mode handles them with a curated mapping (ß→ss, æ→ae, ø→o, Ł→L, þ→th, ð→d). This is the right mode when downstream code is strictly ASCII.Slug mode is transliterate + lowercase + dash-collapse: every run of non-alphanumerics becomes a single
-, leading and trailing dashes are trimmed. Drop the result straight into a URL path or a filesystem-safe identifier.Non-Latin scripts (CJK, Arabic, Cyrillic, Greek, Hebrew, Devanagari, Thai) pass through Strip and Transliterate modes unchanged because they don’t use Latin combining diacritics. Slug mode strips them too — anything outside
[a-z0-9] becomes a dash. The tool detects these scripts and warns you when the chosen mode is unlikely to do what you wanted.Tips & Best Practices
.txt file directly onto the input pane — no upload step, the file is read locally.Frequently Asked Questions
What does Strip mode actually do?
It runs Unicode NFD normalization — decomposing each character into a base letter plus combining marks — then deletes every combining mark in the range U+0300 to U+036F. café becomes cafe; Dvořák becomes Dvorak. Punctuation, whitespace, digits and non-Latin scripts are untouched.
Why does ß stay as ß in Strip mode?
ß (German sharp s), æ, œ, ø, ł, þ, ð are all atomic glyphs in Unicode — they have no decomposition into a base letter plus a combining mark, so NFD leaves them alone. Switch to Transliterate mode to map them to ASCII (ß→ss, æ→ae, ø→o, …).
When should I use Slug mode?
When you need a URL-safe or filesystem-safe identifier. Slug mode transliterates, lowercases, and replaces every run of non-alphanumeric characters with a single dash. "Crème Brûlée & Co." becomes "creme-brulee-co".
Does this affect Chinese, Japanese, Arabic or Cyrillic text?
In Strip and Transliterate modes, no — those scripts don’t use Latin combining diacritics, so NFD has nothing to remove and the curated map only targets Latin ligatures. Slug mode strips them too because anything outside [a-z0-9] becomes a dash. The tool warns you when this is likely to surprise.
Is the conversion reversible?
No. Removing diacritics or mapping ß→ss destroys information — multiple inputs can produce the same output, so the original cannot be recovered from the cleaned form. Always keep the original text if you need it later.
Does any of my text leave the browser?
No. Everything runs locally in JavaScript — input, transformation, file drops, and the share link encoding. Closing the tab is enough to delete it. The share link only contains text you choose to copy.