using System.Globalization;
using System.Text.RegularExpressions;
namespace ConsoleApplication2
public static void Main(string[] args)
Console.WriteLine(PrettyUrl("Hello there! This is some weird with accénted words and funcky - / Characters (29)"));
public static string PrettyUrl(string s)
return Regex.Replace(RemoveDiacritics(s), "[^a-zA-Z0-9]+", "-").Trim('-');
public static string RemoveDiacritics(string text)
var normalizedString = text.Normalize(NormalizationForm.FormD);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString)
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark)
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);