1. ホーム
  2. c#

[解決済み] C#でURL Slugifyアルゴリズム?

2023-02-26 19:57:23

質問

というわけで、私は スラッグ タグをSOで検索して閲覧したところ、2つの説得力のある解決策しか見つかりませんでした。

これらは、問題に対する部分的な解決策に過ぎません。自分で手作業でコーディングすることもできますが、まだ解決策がないことに驚いています。

では、ラテン文字、ユニコード、および他のさまざまな言語の問題を適切に扱う、C# および/または .NET での slugify alrogithm の実装はあるのでしょうか?

どのように解決するのですか?

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); 
}