Separate accent removal from transliteration
Unicode NFD normalization separates removable diacritics from base letters in text such as café, coração, résumé, and Tiếng Việt. The normalized result removes those marks and reports how many original code points changed.
Letters such as ß, æ, ø, and ł are not accent variants with an NFD ASCII equivalent. Preserving them is different from transliteration, which needs an explicit language-aware mapping policy.
Build search keys without replacing display text
Accent-insensitive search often stores a normalized companion value while keeping the original text for display.
Review the changed-character count and sample multilingual results before applying normalized values to imports, indexes, filenames, or deduplication rules.
Create the final slug as a separate step
Accent removal preserves spaces, punctuation, letter case, emoji, and non-transliterated characters. That makes the result reviewable instead of silently applying unrelated URL rules.
After reviewing normalization, apply the project's slug policy for lowercase text, separators, punctuation, and allowed characters.
When not to remove accents
Do not remove accents from legal names, published copy, or user-facing text unless the product requirement explicitly calls for normalization.
Keep the original value when meaning, pronunciation, or identity can be affected.