Slug generator
Turn a title into a clean URL slug. Accents decompose, ß becomes ss, & becomes and, and you choose the separator, the length cap and whether to keep Unicode.
Slug
What happens to accents
Most accented letters decompose: Unicode normalization splits é into an e plus a combining mark, and dropping the mark leaves the letter. That handles the majority of European text for free.
It does not handle everything. ß, ø, æ, đ and ł have no decomposition — there is no "o with a stroke removed". Those need an explicit transliteration, and dropping them instead silently corrupts real names. Straße becomes strasse, not strae.
Text that has no Latin form at all
A Japanese or Arabic title has no meaningful ASCII transliteration, and stripping it leaves an empty slug. Two options: keep the Unicode (perfectly valid in a URL path — it is percent-encoded on the wire and shown readably in the address bar), or accept the fallback and put an identifier in the path instead.
Length limits
Slugs are cut at a word boundary rather than mid-word, unless doing so would throw away more than a third of the budget — at which point the hard cut is the lesser evil. There is no technical limit worth worrying about; anything under about seventy characters is comfortable everywhere.
Related tools
- URL normalizerPut a URL in canonical form: default ports, percent-encoding, trailing slashes, parameter order and www. Choose a lossless or a comparison-grade normalization.
- URL-safe Base64 encoderEncode and decode URL-safe Base64 (RFC 4648 §5): -_ instead of +/, no padding. Handles emoji and every other character atob() refuses outright.
- URL encoder and decoderPercent-encode and decode text, with the component-vs-full-URI distinction made explicit — the difference that decides whether your slashes and ampersands survive.