Skip to content

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

Mode
How should accents be handled? ?
Input No input yet
Output Stripped ?

What gets replaced

Strip · Transliterate

Strip 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.

á à â ä ã åa
é è ê ëe
í ì î ïi
ó ò ô ö õo
ú ù û üu
ñn
çc
ý ÿy
š ş șs
ž ź żz
ßss
æ Æae AE
œ Œoe OE
ø Øo O
å Åa A
ł Łl L
đ Đd D
ð Ðd D
þ Þth TH
ı İi I
Strip + Transliterate Transliterate only

Which mode should I pick?

Strip diacritics

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
Transliterate

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
ASCII slug

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

Accent removal uses Unicode NFD (Normalization Form Decomposition). NFD decomposes a precomposed character like é 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

Use Strip for human-readable text where ligatures should stay (author names, bibliographic sorting). Use Transliterate when downstream code requires pure ASCII (legacy systems, identifiers).
Slug mode pairs naturally with the Text-to-Slug Generator — pick this one when generating URL paths from titles.
Hover any highlighted character in the output to see exactly what was replaced.
Drop a .txt file directly onto the input pane — no upload step, the file is read locally.
Click Copy shareable link to encode your input and mode in the URL — anyone opening the link sees the same scenario.
Cyrillic, Greek, Arabic, CJK and other non-Latin scripts pass through Strip and Transliterate modes unchanged. Switch to Slug if you need pure ASCII.

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.

ß (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 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".

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.

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.

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.