📝 Text

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.

0
Characters Changed
0
Total Characters
0%
Accent Density
0
Cleaned Length
Cleaned ASCII Output

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.

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:

Step-by-Step Guide: How to Strip Diacritics

  1. Paste or Type Text: Input your international text, name lists, or foreign language drafts.
  2. Toggle Linguistic Options: Enable German Umlaut Transliteration if you need formal ae, oe, and ue replacements.
  3. Inspect Metrics: View total characters changed, original length, and accent density percentage.
  4. 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.