Функция создания SEO-заголовка? - PullRequest
1 голос
/ 01 мая 2009

Я создал функцию, которая преобразует любую строку в разделитель табуляции.

What's new in ASP.NET 4.0

Затем преобразует вышеуказанный заголовок в следующий:

what-s-new-in-asp-net-4-0

Я использую это, чтобы сделать SEO моего URL. Но я не уверен, что он будет работать нормально во всех случаях или нет. До сих пор я тестировал эту функцию на 1000 записях в моей базе данных, и она отлично работает для всех названий. Гайз, пожалуйста, проверьте эту функцию и дайте мне знать, если есть вероятность сбоя этой функции, и если есть вероятность, что эта функция может выйти из строя, то, пожалуйста, сообщите мне правильную функцию, которую я могу использовать в моем приложении.

public string SEO_makeTitle(object objTitle)
    {
        string strTitle = Convert.ToString(objTitle);

        strTitle = Regex.Replace(strTitle.Trim(), @"\W", " "); //replace special chars
        strTitle = Regex.Replace(strTitle.Trim(), @"\s{2,}", " "); //replace double space
        strTitle = strTitle.Trim().Replace(" ", "-").ToLower();

        return strTitle; //return - delimited title
    }

Спасибо

1 Ответ

7 голосов
/ 01 мая 2009

Вы можете подумать, как будут выглядеть акценты. Вы заменяете «специальные» символы, но я сомневаюсь, что это включает не-ASCII буквы.

Сначала я бы попытался преобразовать символы без акцента в символы без акцента. Есть относительно простой способ сделать это в C #, если вы знаете хитрость:

 static string RemoveAccents (string input) 
 { 
     string normalized = input.Normalize(NormalizationForm.FormKD); 
     Encoding removal = Encoding.GetEncoding 
         (Encoding.ASCII.CodePage, 
          new EncoderReplacementFallback(""), 
          new DecoderReplacementFallback("")); 
     byte[] bytes = removal.GetBytes(normalized); 
     return Encoding.ASCII.GetString(bytes); 
 }

Вы также можете явно использовать ToLower(CultureInfo.InvariantCulture), чтобы избежать проблем, если вы запускаете код в Турции. Это, вероятно, не будет проблемой, если вы запустите ToLower до , запустив RemoveAccents по общему признанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...