URL алгоритм Slugify в C#?

Таким образом, я искал и просмотрел краткий заголовок, наклеивают ТАК и только нашел два привлекательных решения:

Которые являются слишком частичным решением проблемы. Я мог вручную кодировать это сам, но я удивлен, что уже еще нет решения там.

Так, есть ли slugify alrogithm реализация в C# и/или.NET, которые правильно обращаются к латинским символам, unicode, и различный другой язык выходит правильно?

74
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

http://predicatet.blogspot.com/2009/04/improved-c-slug-generator-or-how-to.html

public static string GenerateSlug(this string phrase) 
{ 
    string str = phrase.RemoveAccent().ToLower(); 
    // invalid chars           
    str = Regex.Replace(str, @"[^a-z0-9\s-]", ""); 
    // convert multiple spaces into one space   
    str = Regex.Replace(str, @"\s+", " ").Trim(); 
    // cut and trim 
    str = str.Substring(0, str.Length <= 45 ? str.Length : 45).Trim();   
    str = Regex.Replace(str, @"\s", "-"); // hyphens   
    return str; 
} 

public static string RemoveAccent(this string txt) 
{ 
    byte[] bytes = System.Text.Encoding.GetEncoding("Cyrillic").GetBytes(txt); 
    return System.Text.Encoding.ASCII.GetString(bytes); 
}
148
ответ дан 24 November 2019 в 11:52
поделиться

Одна из проблем, с которой я сталкивался со слагификацией (новое слово!), — это столкновения. Например, если у меня есть сообщение в блоге под названием «Stack-Overflow» и одно под названием «Stack Overflow», слизни этих двух названий одинаковы. Поэтому мой генератор слизней обычно должен каким-то образом вовлекать базу данных. Возможно, именно поэтому вы не видите более общих решений.

4
ответ дан 24 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: