C# Loại bỏ những ký tự lạ để làm URL cho site - the remove illegal characters



// using System.Web;

public static string RemoveIllegalCharacters(string text)
{
    if (string.IsNullOrEmpty(text))
    {
         return text;
    }
    text = text.Replace(":", string.Empty);
    text = text.Replace("/", string.Empty);
    text = text.Replace("?", string.Empty);
    text = text.Replace("#", string.Empty);
    text = text.Replace("[", string.Empty);
    text = text.Replace("]", string.Empty);
    text = text.Replace("@", string.Empty);
    text = text.Replace("*", string.Empty);
    text = text.Replace(".", string.Empty);
    text = text.Replace(",", string.Empty);
    text = text.Replace("\"", string.Empty);
    text = text.Replace("&", string.Empty);
    text = text.Replace("'", string.Empty);

    text = text.Replace("–", "-"); // live writer passes char 8211  this inplace of a char 45 for hyphen
    text = RemoveUnicodePunctuation(text); // moves any unicode versions of punctuation

    text = text.Replace(" ", "-");
    text = RemoveDiacritics(text);
    text = RemoveExtraHyphen(text);

    return HttpUtility.HtmlEncode(text).Replace("%", string.Empty);
}

// loại bỏ những kỹ dấu

private static string RemoveDiacritics(string text)
{
    var normalized = text.Normalize(NormalizationForm.FormD);
    var sb = new StringBuilder();
    foreach (var c in
        normalized.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark))
    {
        sb.Append(c);
    }

    return sb.ToString();
}

// Loại bỏ 2 gạch nối - the text with the extra hyphen removed
private static string RemoveExtraHyphen(string text)
{
    if (text.Contains("--"))
    {
         text = text.Replace("--", "-");
         return RemoveExtraHyphen(text);
    }
    return text;
}

// The string with the punctuation removed.
private static string RemoveUnicodePunctuation(string text)
{
    var normalized = text.Normalize(NormalizationForm.FormD);
    var sb = new StringBuilder();

    foreach (var c in
        normalized.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.InitialQuotePunctuation &&
                                      CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.FinalQuotePunctuation))
    {
        sb.Append(c);
    }

    return sb.ToString();
}


C# Loại bỏ những ký tự lạ để làm URL cho site - the remove illegal characters





Share To:

laptrinhvien

Post A Comment:

0 comments so far,add yours