Remove Accents
Strip diacritics so é becomes e and ü becomes u.
Characters: 0Words: 0
Transliterating Accented Characters
Accented letters are made of a base letter plus one or more combining diacritical marks. Using Unicode NFKD normalization, this tool separates those marks from their base letters and removes the marks, leaving plain ASCII-friendly text (é → e, ñ → n, ü → u). It's handy for generating slugs, filenames, and search keys. Note that some letters like ł or ß aren't simple accents and may pass through unchanged. Everything runs locally.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Producing an ASCII form of a name for a system that rejects diacritics.
- Normalising text before a search that should match either form.
- Generating a slug from a title containing accented characters.
- Preparing a value for a legacy field that is ASCII-only.
- Comparing two spellings that differ only by accents.
Frequently Asked Questions
- How does accent removal work?
- Unicode NFD normalisation splits a precomposed character into its base letter plus a combining mark, then the marks (\p{M}) are stripped. This is why é becomes e without needing a lookup table.
- Which characters does NFD not handle?
- Letters where the diacritic is part of the glyph rather than a combining mark: ø, ł, đ, and ß. These do not decompose, so they need explicit mapping — ø to o, ß to ss. Most naive implementations miss them.
- Is removing accents always safe?
- No — in several languages the accent is a distinct letter, not decoration. Spanish ñ and n are separate letters, and in Swedish å, ä and ö sort after z. Stripping them changes meaning and breaks alphabetical order.
- Why do this at all?
- Mainly for URL slugs, filenames and search matching, where you want 'café' to be findable by typing 'cafe'. The right pattern is to store the original and use the folded form only as a search key.
- What is the difference between NFC and NFD?
- NFC composes characters into single code points where possible; NFD decomposes them. Both display identically, which is why two visually identical filenames can compare unequal — macOS historically stored NFD while Linux uses NFC.
- Which languages does naive accent removal damage?
- Ones where the mark is a distinct letter, not a diacritic — Polish `ł`, Danish `ø`, Icelandic `þ` and German `ß` have no decomposition, so stripping either leaves them untouched or replaces them wrongly.
- Is this the right way to build a URL slug?
- It is part of it, but transliteration is usually better — German convention maps `ü` to `ue`, not `u`, and Cyrillic or Greek needs a real transliteration table. Accent stripping only handles the Latin case.
Common errors and gotchas
- Changing a name's meaning or pronunciation, which matters to the person it belongs to.
- Assuming a one-to-one mapping, where German ß and Scandinavian ø have conventional expansions rather than base letters.
- Stripping accents that distinguish two different words in the language.
- Applying it to text where the accents are semantically required, such as a legal name field.
- Assuming decomposition handles every script, when many characters are not simply base plus mark.
Related Text Tools tools
Case Converter
Convert between Sentence, Title, camelCase, snake_case, and more.
Word Counter
Count words, characters, and analyze keyword density.
Text to Binary
Convert text into its 8-bit binary representation.
Binary to Text
Decode 8-bit binary back into readable text.
Text Reverser
Reverse text by characters, words, or lines.
Remove Duplicate Lines
Delete repeated lines and keep your list unique.
Remove Empty Lines
Strip blank and whitespace-only lines from text.
Sort Lines Alphabetically
Sort lines A–Z or Z–A, case-sensitive or not.