Remove Accents/Diacritics
Type or paste accented text below and get back the plain ASCII equivalent instantly, é becomes e, ñ becomes n, and letters like ß, æ or ø get mapped to their closest plain-letter spelling too.
About the Remove Accents/Diacritics Tool
Quick Answer: The Remove Accents/Diacritics tool strips diacritical marks and accents from international Latin text using Unicode NFD canonical decomposition and a curated transliteration map for standalone glyphs like German sharp S (ß to ss) and Nordic characters (ø to o, æ to ae). All processing happens 100% locally in your browser.
Most accented letters (é, ñ, ü, â and similar) are Unicode characters built from a plain base letter plus a separate combining mark glued on top. This tool first runs your text through normalize("NFD") to split each accented letter back into that base letter and its mark, then deletes every combining mark in one pass. A handful of letters don't work this way because they are not a base letter plus a mark in Unicode: ß, æ, œ, ø, đ, ł, ð and þ (plus their capital forms) are their own standalone characters, so those are swapped using a hand-written lookup table before the normalization step runs.
- NFD normalization: Decomposes precomposed accented letters into base letter + combining mark, then strips the marks.
- Fallback map: Handles the letters that Unicode doesn't decompose, like ß, æ, œ, ø, đ, ł, ð, þ.
- Characters changed: Counts how many original characters were altered or replaced by the conversion.
Supported Diacritics and Character Transformations
| Language / Family | Sample Input Words | Transformation Applied | Cleaned ASCII Output |
|---|---|---|---|
| French | Café, résumé, naïve, façade |
Acute, grave, circumflex, cedilla stripped | Cafe, resume, naive, facade |
| German & Nordic | Straße, Björk, Øresund, Flöte |
Umlauts stripped; ß → ss, ø → o | Strasse, Bjork, Oresund, Flote |
| Spanish & Portuguese | Niño, São Paulo, coração |
Tildes and cedillas stripped | Nino, Sao Paulo, coracao |
| Polish & Slavic | Łódź, Kraków, Dvořák |
Ł → L, strokes, accents, and ogoneks stripped | Lodz, Krakow, Dvorak |
| Romanian & Turkish | Brașov, Chișinău, İstanbul |
Commas-below, cedillas, and dotted letters normalized | Brasov, Chisinau, Istanbul |
NFD canonical decomposition
Unicode defines four normalization forms, and this tool uses NFD (canonical decomposition without recomposition), not NFKD. NFD splits an accented letter into its base letter plus a combining mark, which is exactly what is needed here, leaving typography ligatures like "fi" and standard ASCII punctuation untouched.
Every loop iterates by Unicode character, not by raw string index
Both passes through the text use for...of, and the total character count uses Array.from(), rather than a plain indexed loop. That distinction matters because for...of and Array.from() both iterate by full Unicode code point, correctly treating a multi-byte character like an emoji as a single unit without splitting surrogate pairs.
Why Strip Accents and Diacritical Marks?
In modern software engineering, web publishing, and data processing, converting international characters into clean 7-bit ASCII letters is often essential:
- Clean SEO URL Slugs: Search engines and web servers operate most reliably when URL paths contain plain ASCII alphanumeric characters. Converting "café-crème" into "cafe-creme" prevents percent-encoded garble (like
caf%C3%A9-cr%C3%A8me) in browser address bars. - Database Indexing and Searching: Many relational databases (like MySQL or PostgreSQL) have collations that treat accented and unaccented characters differently. Storing a shadow unaccented search column allows users searching for "Muller" to instantly match "Müller" without performance-degrading regex scans.
- Email Addresses and Usernames: While Internationalized Domain Names (IDN) and email standards exist, legacy mail transfer agents and corporate Active Directory domains frequently reject non-ASCII characters in email usernames.
- SMS and Telecommunications: Standard GSM 03.38 cellular text messaging allows up to 160 characters per message in the standard alphabet. Introducing a single accented Latin letter or Unicode symbol forces the entire message into UCS-2 encoding, shrinking the character limit per segment down to 70 characters and doubling SMS transmission costs.
Step-by-Step Guide: How to Strip Diacritics
- Paste or Type Text: Input your international text, name lists, or foreign language drafts.
- Toggle Linguistic Options: Enable German Umlaut Transliteration if you need formal ae, oe, and ue replacements.
- Inspect Metrics: View total characters changed, original length, and accent density percentage.
- Copy or Download: Click Copy Text or Download .txt to use your cleaned ASCII copy anywhere.
Frequently Asked Questions
Does this handle ligatures like fi or full-width letters?
No. The tool uses NFD (canonical decomposition) to split accented letters into a base letter plus a combining mark. It leaves typography ligatures and full-width character variants untouched.
Does it strip every kind of combining mark in Unicode?
It strips any character in the U+0300 to U+036F range, the Combining Diacritical Marks block, which covers virtually all accents on everyday Latin-script text.
Will an emoji in my text get miscounted or corrupted?
No. Loops in this tool iterate by full Unicode code point using for...of and Array.from, treating multi-byte emoji as single characters without splitting surrogate pairs.
Why does the output text sometimes end up longer than the input?
Certain fallback substitutions expand into two letters: German sharp S becomes ss, ae ligature becomes ae, and thorn becomes th. This can make the resulting text slightly longer than the original input.
Which languages are supported by this accent removal tool?
All Latin-based languages are supported, including French, Spanish, German, Portuguese, Italian, Polish, Czech, Swedish, Norwegian, Danish, and Icelandic.
Is my text sent to a server when I use this tool?
No. All conversion happens locally in your browser using JavaScript built-in Unicode normalization; nothing is uploaded anywhere.
What is the difference between NFD and NFKD Unicode normalization?
NFD performs canonical decomposition, breaking composite glyphs strictly into their fundamental base characters and combining accents. NFKD performs compatibility decomposition, which additionally converts formatting characters such as superscripts, fractions, and ligatures into plain equivalents.
Why do database search queries benefit from unaccented ASCII text?
Many SQL and NoSQL databases enforce case-sensitive or binary collation by default. Removing accents creates a normalized search column, ensuring queries for cafe match records stored as café without complex server-side collation indexes.
How does German umlaut transliteration differ from standard accent stripping?
Standard stripping converts ä to a, ö to o, and ü to u. In formal German publishing and official passport documentation, umlauts are transliterated by appending an e (ae, oe, ue). The German Transliteration toggle applies this linguistic convention.
Can I process entire documents or books without hitting a file size limit?
Yes. Because execution executes locally in your browser JavaScript memory with no HTTP transfer quotas or server timeouts, you can paste and convert multi-megabyte text documents instantly.