Skip to content
LeedyBox
Support

Removing Accents and Making URL Slugs

Names in passports, e-mail addresses, file names and web addresses are often written without accents. Dropping the marks is easy for é, but Vietnamese đ, Turkish ı, German ß and Danish ø need their own rules. This guide explains them and how to turn a title into a clean URL slug.

Two Kinds of Letters With Marks

Most accented letters are a base letter plus a mark: é is e with an acute accent, ü is u with a diaeresis, and Vietnamese ệ is e with a circumflex and a dot below. Unicode records how each one breaks down, so removing the marks gives the base letter back. A computer can even store the same letter in two ways, as one precomposed character or as the base letter followed by separate marks; both look the same and both lose their marks in the same way.

Other letters are not built from a base letter: Vietnamese đ, Turkish ı, German ß, Danish and Norwegian ø, æ and Icelandic þ. Removing marks leaves them unchanged, so each needs a spelling of its own.

The Passport Table

The machine-readable lines at the bottom of a passport use only the letters A to Z. ICAO Doc 9303, the international specification for passports, lists how national letters are written there. Its table is a good, neutral reference for writing names without accents:

Letter ICAO Doc 9303 Language
É È Ê Ç Ñ E E E C N French, Spanish, Portuguese …
Ä Ö Ü AE or A, OE or O, UE or U German, Swedish, Finnish, Turkish …
ẞ (ß) SS German
Đ D Vietnamese, Croatian …
Ğ Ş Ç İ I (ı) G S C I I Turkish
Ø Æ Å OE, AE, AA or A Danish, Norwegian
Ł Þ Œ L, TH, OE Polish, Icelandic, French

Where the table gives a choice, the passport office of each country decides. The rest of this guide shows how each language usually writes its letters without marks.

Vietnamese: Tone Marks and đ

Vietnamese letters can carry two marks. A vowel mark makes a different vowel (ă, â, ê, ô, ơ, ư), and one of five tone marks shows the tone (huyền à, sắc á, hỏi ả, ngã ã, nặng ạ). Writing "không dấu", without marks, removes both and writes đ as d: Nguyễn Văn Đức becomes Nguyen Van Duc. Removing only the tone marks (Nguyên Văn Đưc) keeps the vowels apart for readers who know the language.

Two spellings can differ only in where the tone mark sits, such as hòa and hoà or thủy and thuỷ. Without marks they are the same word, hoa and thuy.

Turkish: Dotted and Dotless i

Turkish has four i letters: i and İ with a dot, ı and I without. Without marks, ı becomes i and İ becomes I, and ç, ğ, ö, ş and ü lose their marks: İstanbul'da Şişli becomes Istanbul'da Sisli.

Lower case is the trap. Unicode's general rule lowers İ to i followed by a combining dot (U+0307), an extra invisible character that ends up in file names and URLs. The Turkish rule lowers İ to i and I to ı. Convert Turkish letters to plain ones first and lower the text after; the result is then the same everywhere.

German: ae, oe, ue and ss

German writes ä, ö and ü as ae, oe and ue when the dots are not available, so Müller becomes Mueller rather than Muller, which could be another family. For ß, the official German spelling rules (Amtliches Regelwerk, § 25 E2) say that ss is written when ß is not available: Straße – Strasse. In other languages ä, ö and ü simply lose their dots, so a Turkish Üsküdar becomes Uskudar, not Ueskuedar.

Turning a Title Into a URL Slug

The slug is the part of a web address that names the page. A good slug is short, in lower case, with words joined by hyphens:

Title Slug
Café & Crème Brûlée: 10 Tips cafe-creme-brulee-10-tips
İstanbul'da Gezilecek Yerler istanbulda-gezilecek-yerler
Öffnungszeiten & Preise oeffnungszeiten-preise
Cách nấu phở bò Hà Nội cach-nau-pho-bo-ha-noi
  • Hyphens, not underscores. Google's guide to URL structure recommends hyphens between words and readable words rather than long ID numbers.
  • Drop apostrophes instead of splitting the word: don't becomes dont, not don-t.
  • Accents in addresses get long. Browsers show them, but a copied link carries them percent-encoded: Google's example gemüse becomes gem%C3%BCse.
  • Other scripts. Russian titles can be written in Latin letters by a transliteration table: the slug generator uses the ICAO passport table (Новости → novosti), and the guide to Russian transliteration compares it with BGN/PCGN. Korean, Japanese, Chinese or Thai titles can stay in their own script, or you can write a Latin slug by hand.
  • Do not change published slugs lightly. The old address stops working unless you redirect it permanently (301) to the new one.

Frequently Asked Questions

Is it wrong to write a name without accents?

Not where the system cannot take them, such as the passport's machine-readable lines or an old booking system. Wherever accents are possible, the correct spelling keeps them.

Should Ä become AE or A?

Both are allowed by the passport table. For German names, AE is the usual choice; for Turkish, Finnish or Swedish words, A, O and U are common. Use the spelling the document you are matching already uses.

How long should a slug be?

There is no fixed limit. Keep the words that describe the page and drop the rest; many content systems also have a maximum length of their own.

Why does my text look the same but compare as different?

One copy may store é as one character and the other as e plus a combining accent. Removing the accents, or normalizing both texts to the same Unicode form, makes them equal.